用户键盘输入结束while循环

时间:2012-11-16 21:43:02

标签: shell keyboard-events

我正在尝试编写一个脚本,将命令历史记录记录到临时的PID.cmd文件中。当键盘上的键组合被击中时,我对如何结束脚本感到困惑。

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

1 个答案:

答案 0 :(得分:1)

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

当输入流结束时,循环将终止。如果stdin来自tty,则当用户键入ctrl-D时会发生这种情况。 SIGINT也应该终止循环,因为读取将失败。 (SIGINT是为响应ctrl-C而发送的。)