我觉得我已经多次使用'for loop'逐行读取文件并对输出进行操作。但现在无论我做什么,我都无法让它工作。我可以使用"读取时"循环让它工作。但我只是好奇为什么我的 for 循环不再工作了。我很确定我犯了一些简单的错误。但我似乎想不通它是什么。这是我正在尝试的命令的一种变体。我尝试了几种变体来更改引号,或者有时使用 和 cat,有时不这样做。但每次我都得到相同的结果。
$ for x in "cat test.sh" ; do echo $x ; done
cat test.sh
$
执行预期操作的基本方法是:
while IFS= read -r line; do echo "$line"; done < test.sh
见 http://mywiki.wooledge.org/BashFAQ/001
注意
如果使用 for
循环,则会遇到每行空格上的 shell 单词拆分问题
你可以
使用,
while read line
do
task
done < file
或
for line in 'cat dbs.txt';
do
task
done