어떤 방식으로든 실행 중인 명령을 수정하고/하거나 실행 중인 명령이 완료될 때 알림을 받을 수 있기를 원합니다.뒤쪽에이미 시작되었습니다.
일반적으로 명령을 수행하는 데 시간이 오래 걸릴 것이라는 것을 알면 사전에 몇 가지 알림을 설정합니다.
./takes_long_time && touch done
또는
./takes_long_time; touch done
내 질문은 , ./takes_long_time
없이 실행되는 경우 touch
다시 시작하지 않고 돌아가서 추가할 수 있는 방법이 있습니까 ./takes_long_time
?
답변1
좀 더 검색해본 결과 발견해결책:
$ ./takes_long_time
<ctrl-z>
[1]+ Stopped ./takes_long_time
$ fg && touch done
어떻게 사용하느냐에 따라 몇 가지 주의사항이 있습니다( fg; touch done
바람직하지 않은 결과가 발생할 수 있습니다. 링크된 게시물을 참조하세요).
fg | grep something
또한 파이프() 추가와 같은 작업을 수행할 수 없지만 이는 이해할 수 있는 제한 사항입니다.
답변2
아마도 ./takes_long_time
백그라운드에 넣어야 할 것입니다.
바꾸다
./takes_long_time && touch done
하다
./takes_long_time &
./takes_long_time
이 작업은 백그라운드에서 실행 됩니다 . 그 후에는 실행될 수 있습니다 ./takes_long_time
. 따라서 백그라운드에서 두 개의 프로세스가 실행됩니다.
명령이 완료되었는지 알리는 비전통적인 방법은 다음과 같습니다.
if command_line; then
echo "It is done"
fi
예
if sleep 5; then
echo "Finish sleeping for 5 seconds"
fi