메인 프로그램이 표준 방식으로 실행되도록 하고 그래픽 애플리케이션이 실행되면 터미널에서 분리되도록 하고 싶습니다. 이 예에서는 fzf
파일에서 경로를 읽어 선택한 파일과 폴더를 mpv
미디어 플레이어에 제공합니다.
fzf < paths.txt | mpv --playlist=-
&
명령에 추가 하면 fzf
대화식으로 실행되지 않습니다.
fzf < paths.txt | mpv --playlist=- &
비록mpv
--terminal=no
플래그는 단순히 터미널 입력 및 출력을 비활성화하고 연결된 mpv 프로세스를 그대로 유지합니다.
[...] 터미널과 stdin/stdout/stderr 사용을 비활성화합니다. 이렇게 하면 메시지 출력이 완전히 제거됩니다.
--really-quiet와 달리 입력 및 터미널 초기화도 비활성화됩니다.
답변1
&
명령 뒤에 넣으면 두 번째 부분뿐만 아니라 전체 명령에 적용됩니다.
마지막 부분을 백그라운드에서 실행하고 싶다면 다음과 같이 하면 됩니다:
fzf < paths.txt | { mpv --playlist=- & }
mpv
내가 찾을 수 없는 이유로 이것은 쉘 작업 목록에 추가되지 않았습니다. 하지만 귀하의 사용 사례에는 적합한 것 같습니다.