NDI*_*n23 2 bash input shell-script read
我需要编写一个脚本,如果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
Run Code Online (Sandbox Code Playgroud)
目前有类似的东西,但无法弄清楚当按下Ctrl+D而不是Enter.
你多虑了。你只需要这个:
cat > texttest.txt
Run Code Online (Sandbox Code Playgroud)
如果你没有告诉它不同,Cat 会从 STDIN 读取。由于它是从 STDIN 读取的,它会对控制字符Ctrl+做出反应,D而无需您指定它。由于Ctrl+D 是唯一可以完成cat子流程的东西,因此您甚至不需要将其包装在循环中。