env 변수를 사용하여 단일 명령에 대한 기본 변수를 설정하는 방법은 무엇입니까?

env 변수를 사용하여 단일 명령에 대한 기본 변수를 설정하는 방법은 무엇입니까?

단일 프로세스에 대한 기본 브라우저를 재정의해야 합니다. 이 프로세스는 npm 스크립트에서 수동으로 시작됩니다. 이를 프로그래밍 방식으로 달성하기 위해 BROWSER스크립트 직전에 환경 변수를 재정의하기로 결정했습니다 . 그러나 그것은 작동하지 않습니다. 그것은 시스템 전체의 기본 브라우저를 훔칩니다. 으로 시도했지만 xdg-open작동하지 않습니다.

간단히 말해서, 기본 브라우저가 아닌 제공된 브라우저에서 주어진 URL을 열고 다음 명령을 실행하고 싶습니다.

BROWSER='path to desired browser' xdg-open 'any url'

추신: 내 문제에 대해 조금 더 말씀드리고자 합니다. 나는 내 모든 컴퓨터의 기본 브라우저로 Firefox를 사용하고 있으며 꽤 익숙해졌습니다. 그러나 최근 한 웹 애플리케이션을 디버깅하면서 일부 중단 문자가 Firefox 개발 도구에서 사용되지 않는다는 것을 깨달았습니다. Chromium을 설치했는데 디버거가 예상대로 작동했습니다. 저는 개발을 위해 스토리북을 사용하고 있으며 일상적인 사용을 위해 Firefox를 기본 변수로 사용하면서 Chromium에서 열고 싶습니다.

답변1

비슷한 것이 필요했지만 잘못된 브라우저 프로필을 자주 사용하는 $BROWSER상황 에 국한되지는 않았습니다.xdg-open

다음 구성 요소를 사용한 해결 방법은 다음과 같습니다.

  • BROWSER변수를 로드하고 올바른 브라우저를 시작하는 스크립트입니다 .
  • .desktop현재 기본 프로필을 디렉터리에 복사하여 재정의합니다 ~/.local/share/applications.
  • 사용자 정의 스크립트를 사용하도록 파일 Exec의 명령문을 변경하십시오 ..desktop
  • BROWSER대체 기능을 사용하려면 로그인 셸에서 변수를 정상적인 기본값으로 설정하세요 .

단계별

~/bin내 디렉토리 에 custom-browser다음과 같은 스크립트를 추가했습니다 .

$BROWSER "$@"

둘째, 다음을 사용하여 현재 .desktop프로필을 찾습니다.

xdg-settings get default-web-browser

firefox.desktop그러면 내 사용자 홈 디렉터리에 복사된 가 제공됩니다 .

cp /usr/share/applications/firefox.desktop ~/.local/share/applications/firefox.desktop

launch 에 Exec대한 설명을 수정했습니다 .~/.local/share/applications/firefox.desktop/home/{user}/bin/custom-browser

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

BROWSER='chromium' xdg-open 'https://startpage.com'
BROWSER='firefox' xdg-open 'https://startpage.com'

변수 에 따라 다른 브라우저를 엽니다 BROWSER. 이것이 어떤 식으로든 도움이 되기를 바랍니다.

나의 사용법

나는 사용한다direnvBROWSER[1] 디렉터리를 기반으로 변수를 설정합니다 . 예를 들어 작업 디렉터리는 내 브라우저의 작업 프로필을 사용합니다.

BROWSER=hardened-firefox signal-desktop또 다른 방법은 앱이 특정 브라우저로 링크를 열도록 강제 로 앱을 실행하는 것입니다 .

노트

  • .desktop파일이 환경변수를 불러오지 않기 때문에 스크립트가 필요하므로 Exec=$BROWSER %u직접 추가하는 것은 불가능합니다.
  • BROWSER로그인 셸 대신 스크립트에서 대체를 설정할 수 있습니다 .
  • 기본값을 재정의하는 대신 사용자 정의 파일을 작성하고 /를 .desktop사용하여 기본값을 변경할 수 있습니다 . 나는 재정의를 통해 "올바른" 것을 얻는 것이 더 쉽다는 것을 알았습니다.xdg-settingsxdg-mime
  • URL을 첫 번째 위치 매개변수로 사용하지 않는 브라우저를 사용하는 경우 .desktop스크립트에서 이를 처리하고 사용자 정의하는 것이 더 쉬울 수 있습니다.
  • .desktop프로필이 에 없거나 /usr/share/applications재정의가 $HOME/.local/share/applications작동하지 않는 경우대체 경로[2] 또는 배포판 설명서를 참조하세요.

연결

  1. https://direnv.net/
  2. https://specations.freedesktop.org/mime-apps-spec/latest/ar01s02.html

답변2

export BROWSER='path to desired browser' && xdg-open 'any url'트릭을해야합니다.

관련 정보