2012-11-16 3 views
1

임시 PID.cmd 파일에 명령 기록을 기록하는 스크립트를 작성하려고합니다. 키보드의 조합이 키보드에서 눌려지면 스크립트를 종료하는 방법에 대해 고민하고 있습니다. 입력 스트림이 종료 할 때루프를 종료하는 동안 사용자 키보드 입력

until [ <CTRL+C> ] 
do 
    read -p "$PWD\$" cmd; 
    echo "$cmd" >> $$.cmd 
done 

답변

1
while read -p "$PWD\$" cmd; do 
    echo "$cmd" >> $$.cmd 
    ... 
done 

루프는 종료된다. stdin이 tty에서 온 것이면 사용자가 ctrl-D를 입력했을 때 발생합니다. SIGINT도 루프가 종료되어야합니다. 그러면 읽기가 실패합니다. (SIGINT은 ctrl-C에 대한 응답으로 전송됩니다.)