1

コマンド履歴を一時的な PID.cmd ファイルに記録するスクリプトを作成しようとしています。キーボードでキーの組み合わせが押されたときにスクリプトを終了する方法に行き詰まっています。

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

1 に答える 1

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

入力ストリームが終了すると、ループは終了します。stdin が tty からのものである場合、ユーザーが ctrl-D を入力すると発生します。 SIGINT読み取りが失敗するため、ループも終了する必要があります。( SIGINTctrl-C に応答して送信されます。)

于 2012-11-16T21:50:26.460 に答える