我正在使用bash脚本自动创建文件。我生成了一个文件rc_notes.txt
,它有来自两个标签的提交消息,并希望在新文件中将其重新写为rc_device.txt
。
我希望用户编写客户发行说明并退出我在终端中提示的BASH STDIN
。
我的脚本中的问题是我无法捕获文件的结尾。
想知道怎么做。我不想捕捉近距离信号。我想输入魔术字符串示例:Done
或一些触发STDIN关闭的字符串,它优雅地退出脚本。
我的剧本:
#/bin/bash
set -e
echo "Creating the release candiate text"
rc_file=rc_updater_notes.txt
echo "=========Reading the released commit message file=========="
cat $rc_file
echo "=========End of the commit message file=========="
echo "Now write the release notes"
#exec < /dev/tty
while read line
do
echo "$line"
done < "${1:-/dev/stdin}" > rc_file.txt
确实会创建文件,但我需要输入ctrl+D
或ctrl+z
手动退出。我不想那样做。有什么建议吗?
答案 0 :(得分:1)
在&#34; Done&#34;已输入
while read line
do
if [[ $line = Done ]]; then
break;
fi
echo "$line"
done < "${1:-/dev/stdin}" > rc_file.txt
或
while read line && [[ $line != Done ]]
do
echo "$line"
done < "${1:-/dev/stdin}" > rc_file.txt