
실험을 시작하는 중이에요크런치뱅(Debian을 기반으로 하며 다음을 사용합니다.터미네이터)를 웹 개발 환경으로 사용하는데 제가 어려움을 겪고 있는 것 중 하나는 의 동작입니다 xdg-open
. 저는 OSX 환경에서 왔기 때문에 이 질문이 너무 어렵게 느껴지더라도 양해해 주시기 바랍니다.
xdg-open http://www.google.com
URL을 열고 동일한 터미널 창을 계속 사용하여 작업할 수 있기를 원합니다 ( open
OSX에서 작동하는 방식입니다). 지금은 xdg-open
브라우저 창을 닫거나 수동으로 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>'
나는 이 기술을 사용하여 내 Bit Torrent 클라이언트 Vuze에 Magnet:// URL을 추가합니다.
ssh someserver "DISPLAY=:0.0; xdg-open 'http://www.google.com/'"
작은따옴표는 URL의 내용을 보호하여 셸이 URL을 해석하지 못하도록 하는 데 도움이 됩니다.