が押された場合にテキスト ファイルに行を追加するスクリプトを作成する必要がありますEnter。
しかし、Ctrl+Dが押された場合は、bash 内のそのループを終了する必要があります。
touch texttest.txt
LINE="0"
while true; do
read LINE;
if [ "$LINE" == "^D" ]; then
break
else
echo "$LINE" >> texttest.txt
fi
done
現在、このようなものがありますが、ではなくCtrl+が押されたときに while ループを終了する方法がわかりません。DEnter
答え1
考えすぎです。必要なのはこれだけです:
cat > texttest.txt
Cat は、特に指示しない限り、STDIN から読み取ります。STDIN から読み取るため、制御文字Ctrl+Dを指定しなくても反応します。また、Ctrl+ はサブプロセスD を終了する唯一のものであるためcat
、ループでラップする必要もありません。
答え2
次のようにします。
while read -r LINE ; do
echo "$LINE" >> texttest.txt
done
- 最初にファイルに触れる必要はありません
LINE
変数を初期化する必要はありません- Ctrl+Dstdin を閉じ、
read
null 以外の (false) 終了コードで終了します。