Bash
使用讀取的 Bash 腳本需要在 Ctrl+D 上停止執行
我需要編寫一個腳本,如果
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
+D
而不是Enter
.
你想多了。你只需要這樣:
cat > texttest.txt
如果您沒有告訴它不同,Cat 將從 STDIN 讀取。由於它是從 STDIN 讀取的,它會對控製字元
Ctrl
+做出反應,D
而無需您指定它。而且由於Ctrl
+D
是唯一可以完成cat
子流程的東西,因此您甚至不需要將其包裝在一個循環中。
以下會做:
while read -r LINE ; do echo "$LINE" >> texttest.txt done
- 您無需先觸摸文件
- 你不需要初始化
LINE
變數Ctrl+D
關閉標準輸入,read
使用非空(假)退出程式碼退出