Enterクリックすると、テキストファイルに1行を追加するスクリプトを作成する必要があります。
ただし、Ctrl+を押すとDbashでループを終了する必要があります。
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
特に言わないと、キャットはSTDINで読みます。 STDINから読み取るため、指定せずにCtrl制御文字+に反応します。 +はサブプロセスを完了できる唯一のものなので、Dループでラップする必要さえありません。CtrlDcat
答え2
次のことができます。
while read -r LINE ; do
echo "$LINE" >> texttest.txt
done
- ファイルを最初にタッチする必要はありません。
LINE
変数を初期化する必要はありません。- Ctrl+D
read
NULL以外の(偽)終了コードで終了する標準入力を閉じます。