2014-09-03 3 views
0

나는백그라운드에서 실행중인 프로그램에서 stdinput을 전달하는 방법은 무엇입니까?

youtube-dl -o C:\Users\3435\Desktop\35.mp4 http://www.youtube.com/watch?v=I1rxfwFxB8M 

이 명령은 쉘에 질문을 입력하여 종료 할 수있는 명령을 수행하는 쉘 스크립트를 작성하는 것을 시도하고있다.

스크립트에 매개 변수를 전달할 수 있지만 스크립트 내에서 또는 다른 스크립트를 통해 자동으로 매개 변수를 전달하는 방법입니다. 스크립트 내에서이 youtube-dl 프로세스를 종료 할 수는 있지만 commad 실행에 영향을 미치기 때문에이 작업을 수행하고 싶지 않습니다.

q가 다른 스크립트 또는 동일한 스크립트 내에서 youtube-dl 프로세스에 의해 수신되고 있는지 확인하는 방법을 알려주십시오.

+0

'youtube-dl'이 터미널에서 직접 읽는 지 아니면 표준 입력에서 읽는지에 따라 다릅니다. 나는 어떤 경우인지 모른다. – chepner

+0

표준 입력에서 그것의 독서 – GP007

답변

0

당신은 명명 된 파이프에서 표준 입력을 재 지정할 수 있습니다 :

mkfifo ydl-input 
youtube-dl -o 'C:\Users\3435\Desktop\35.mp4' \ 
      'http://www.youtube.com/watch?v=I1rxfwFxB8M' \ 
      < ydl-input 

는 나중에 언제든지 명명 된 파이프에 "q"를 작성합니다.

echo q > ydl-input 
+0

감사합니다 @chepner 그것은 저를 위해 작동한다. 우리가 파이프를 창조하고 그 후에 원본에 통과 할 필요가있는이 것을 알아 냈었다. – GP007

0

이 모든 작업을 수행하지 않아도됩니다. 우리는 터미널 인쇄 출력을 파일로 내보내고 모든 것을 백그라운드에서 실행합니다.

youtube-dl -o ~/Desktop/35.mp4 http://www.youtube.com/watch?v=I1rxfwFxB8M > tmp.txt 2>&1 & 

출력을 삭제할 수도 있습니다.

관련 문제