我有这样的text.txt
文件
line1
line2
line3
我想编写一个循环遍历每一行并回显的脚本
modified line1
modified line2
modified line3
这是一个非常常见的解决方案的脚本:
while IFS= read -r line; do
echo modified $line
done <<< $(cat ~/text.txt)
但我得到的输出是:
modified line1 line2 line3
什么地方出了错?
问题在最后一行,您不需要变量(命令替换)或
cat
,因为read
已经可以读取文件。如果您改为这样做:有用。
此外,如果您引用以下变量,您的命令将起作用:
因为除非你引用它们,否则 bash 会忽略变量中的换行符。但是这样做过于复杂了。