xdg-open을 사용하여 새 프로세스에서 URL을 엽니다.

xdg-open을 사용하여 새 프로세스에서 URL을 엽니다.

나는 시도하기 시작했다결정적 시기(Debian 기반이며 다음을 사용합니다.터미네이터) 웹 개발 환경으로서 제가 겪고 있는 문제 중 하나는 xdg-openOSX 배경에서 왔기 때문에 이 질문이 복잡하게 들리더라도 양해해 주시기 바랍니다.

xdg-open http://www.google.comURL을 열고 동일한 터미널 창을 사용하여 계속 작업하고 싶습니다 ( openOSX에서 작동하는 방식입니다). 이제 xdg-open브라우저 창을 닫거나 를 사용하여 수동으로 종료할 때까지 using은 현재 탭/세션을 차지합니다 ctrl + c. URL을 열고, 페이지의 데이터를 참조하고, 다른 탭/창을 열지 않고도 동일한 탭/창에서 사용할 수 있도록 새 프로세스를 시작하는 것이 좋습니다.

답변1

이상하게도 내 데비안에서는 기본적으로 작동합니다. 백그라운드에서 실행해보세요:

xdg-open http://www.google.com &

파일 에 다음 줄을 추가하여 ~/.bashrc이를 함수로 바꿀 수 있습니다.

function open () {
    xdg-open "$*" &
}

그런 다음 실행하면 open http://www.google.com백그라운드에서 실행됩니다.

답변2

프로세스를 백그라운드 작업으로 시작하는 대신 현재 셸에서 분리하고 싶다면 xdg-open http://www.google.com &다음과 같이 하세요.detach유용:

detach xdg-open http://www.google.com

이에 대한 별칭을 만들 수 있습니다. 나는 기본적으로 stdin, stdout 및 stderr를 끄는 것을 좋아하므로 호출이 더 깔끔해집니다 detach.nohup

답변3

xdg-open프로그램이 완료될 때까지 기다리십시오. 이것은 의도적으로 설계된 것입니다. 프로그램이 텍스트 모드 프로그램인 경우 터미널의 전경에 남아 있어야 합니다. 프로그램이 GUI 프로그램인 경우에도 이 동작은 xdg-open스크립트에서 사용되고 스크립트가 파일을 편집한 후 작업을 수행하려는 경우 유용합니다(예: 새 버전을 어딘가에 보내거나 새 버전으로 작업 수행).

기다리기 싫다면 xdg-open백그라운드에서 실행하세요. 끝에 "&" 기호를 추가하면 백그라운드에서 모든 셸 명령을 실행할 수 있습니다.

xdg-open http://www.google.com &

일부 프로그램의 경우 xdg-open이는 즉시 반환됩니다. 실제로 일어나는 일은 호출 프로그램이 xdg-open즉시 반환된다는 것입니다. 이는 일반적으로 단일 인스턴스에서 모든 파일을 여는 GUI 프로그램에서 발생합니다. 두 번째로 시작하면 실행 중인 인스턴스에 파일을 열라는 메시지를 보낸 다음 즉시 종료합니다.

답변4

이 시도:

DISPLAY=:0.0; xdg-open '<url>'

저는 이 기술을 사용하여 Magnet:// URL을 Bit Torrent 클라이언트 Vuze에 대기열로 추가합니다.

ssh someserver "DISPLAY=:0.0; xdg-open 'http://www.google.com/'"

작은따옴표는 URL의 내용을 보호하여 쉘이 URL을 해석하지 못하도록 합니다.

관련 정보