wget으로 파일을 다운로드 중이며 다운로드가 끝난 후 컴퓨터를 끄고 싶지만 지금 어딘가에 가야합니다. :) 프로세스가 끝나면 bash에서 명령을 정확하게 실행할 수 있습니까?
나는 이것이 작동한다는 것을 안다.
wget http://example.com/file.rar; 지금 셧다운
그러나 내가 입력 만하면 어떻게됩니까?
wget http://example.com/file.rar
wget으로 파일을 다운로드 중이며 다운로드가 끝난 후 컴퓨터를 끄고 싶지만 지금 어딘가에 가야합니다. :) 프로세스가 끝나면 bash에서 명령을 정확하게 실행할 수 있습니까?
나는 이것이 작동한다는 것을 안다.
wget http://example.com/file.rar; 지금 셧다운
그러나 내가 입력 만하면 어떻게됩니까?
wget http://example.com/file.rar
답변:
다음과 같이 할 수 있습니다 :
wait는 현재 쉘에서 백그라운드로 실행 된 모든 프로그램, 즉이 wget을 기다립니다.
대기 후 완료-종료가 진행됩니다.
다른 쉘에서
ps -u <your username> | grep wget
기다릴 명령의 PID를 찾은 다음
wait <PID>; shutdown -h now
프로세스가 종료 될 때까지 종료되지 않습니다. depesz 's answer 도 참조하십시오 .
wait같은 쉘에서 시작한 명령에 대해서만 작동
내 해결책은 이것입니다 : Control + Z로 장기 실행 작업을 일시 중단 한 다음 다음과 같이 입력하십시오.
fg; echo "Done!"
명령의 성공 또는 실패에 따라 다르게 반응하도록하려면 && 및 || 단락 연산자로.
fg && echo "Success!" || echo "Failure!"
편집 : 암호를 요구하기 때문에 sudo에서는 작동하지 않습니다. 따라서 sudo를 사용하여 예제를 제거했습니다. 두 번째 작업에 sudo가 필요한 경우 여기에 게시 된 다른 방법을 사용하십시오.
반면에, 그놈과 KDE는 적절한 D-Bus 신호 등을 보내서 sudo를 사용하지 않고 종료 / 재부팅을 트리거하는 방법을 제공한다고 생각합니다.
fg...이지만 sudo비밀번호를 묻는 메시지가 표시되면 문제가 될 수 있습니다.
예, 두 번째 명령을 입력하고 Enter를 누르십시오. 현재 프로그램이 텍스트를 스크롤하는 경우 올바르게 입력 한 내용을 볼 수 없으므로 키를 보면서 올바르게 수행하십시오.
더 똑똑한 방법은 다른 TTY (CTRL + ALT + F1-F6)로 전환하여 명령을 동시에 실행하거나 화면과 같은 명령 줄 프로그램을 사용하는 경우 새 창을 만들 수 있습니다.
화려하고 싶다면 wget의 반환 상태를 확인하고 성공한 경우에만 종료하십시오.
% wget http://example.com/file.rar
% if [ $? -eq 0 ]
> then
> shutdown now
> fi
wget실행 중에는 테스트를 빌드하라는 프롬프트가 표시되지 않습니다.