programing

셸 스크립트에서 웹 브라우저를 시작하는 깨끗한 방법?

javamemo 2023. 5. 20. 00:24
반응형

셸 스크립트에서 웹 브라우저를 시작하는 깨끗한 방법?

bash 스크립트에서는 사용자 웹 브라우저를 실행해야 합니다.이를 위한 다양한 방법이 있습니다.

  • $BROWSER
  • xdg-open
  • gnome-openGNOME에서
  • www-browser
  • x-www-browser
  • ...

대부분의 플랫폼에서 사용할 수 있는 표준적인 방법이 있습니까? 아니면 다음과 같은 방법을 사용해야 합니까?

#/usr/bin/env bash

if [ -n $BROWSER ]; then
  $BROWSER 'http://wwww.google.com'
elif which xdg-open > /dev/null; then
  xdg-open 'http://wwww.google.com'
elif which gnome-open > /dev/null; then
  gnome-open 'http://wwww.google.com'
# elif bla bla bla...
else
  echo "Could not detect the web browser to use."
fi
python -mwebbrowser http://example.com

여러 플랫폼에서 작동합니다.

xdg-open는 표준화되었으며 대부분의 배포에서 사용할 수 있어야 합니다.

그렇지 않은 경우:

  1. eval사악해요, 사용하지 마세요.
  2. 변수를 따옴표로 묶습니다.
  3. 올바른 테스트 연산자를 올바른 방법으로 사용합니다.

다음은 예입니다.

#!/bin/bash
if which xdg-open > /dev/null
then
  xdg-open URL
elif which gnome-open > /dev/null
then
  gnome-open URL
fi

이 버전이 조금 더 나을 수도 있습니다(아직 테스트되지 않음).

#!/bin/bash
URL=$1
[[ -x $BROWSER ]] && exec "$BROWSER" "$URL"
path=$(which xdg-open || which gnome-open) && exec "$path" "$URL"
echo "Can't find browser"

OSX:

$ open -a /Applications/Safari.app http://www.google.com

또는

$ open -a /Applications/Firefox.app http://www.google.com

아니면 그냥...

$ open some_url

다음을 사용할 수 있습니다.

x-www-browser

사용자의 X 브라우저를 실행하지 않고 시스템의 기본 X 브라우저를 실행합니다.

참조: 이 스레드.

다른 답변을 받아 모든 주요 OS에 적합한 버전을 만들고 URL이 런타임 변수로 전달되는지 확인합니다.

#!/bin/bash
if [ -z $1 ]; then
  echo "Must run command with the url you want to visit."
  exit 1
else
  URL=$1
fi
[[ -x $BROWSER ]] && exec "$BROWSER" "$URL"
path=$(which xdg-open || which gnome-open) && exec "$path" "$URL"
if open -Ra "safari" ; then
  echo "VERIFIED: 'Safari' is installed, opening browser..."
  open -a safari "$URL"
else
  echo "Can't find any browser"
fi

이것은 당신이 원하는 것에 정확히 적용되지 않을 수도 있지만, npm 패키지를 사용하여 서버를 만들고 시작하는 정말 쉬운 방법이 있습니다.

설치 후(단, 설치 후)npm install http-server -g) 을 넣을 수 있습니다.

http-server -o

현재 디렉터리에서 서버를 시작하고 해당 페이지에 대한 브라우저를 엽니다.

언급URL : https://stackoverflow.com/questions/3124556/clean-way-to-launch-the-web-browser-from-shell-script

반응형