我觉得我已经多次使用'for loop'来逐行读取文件并对输出执行操作。但无论我做什么,我都无法让它发挥作用。我可以使用'while read'循环让它工作。但我只是好奇为什么我的for循环不再工作了。我很确定我做了一些简单的错误。但我似乎无法弄清楚它是什么。这是我正在尝试的命令的一个变体。我尝试了几种变化,更改引号或某些时候使用和猫,其他时间没有。但每次我得到相同的结果。
$ for x in "cat test.sh" ; do echo $x ; done
cat test.sh
$
答案 0 :(得分:4)
达到预期目标的基本方法是:
while IFS= read -r line; do echo "$line"; done < test.sh
请参阅http://mywiki.wooledge.org/BashFAQ/001
如果你使用for
循环,那么你在每行的空格上遇到 shell word splitting 的问题
答案 1 :(得分:2)
你可以使用,
while read line
do
task
done < file
或
for line in 'cat dbs.txt';
do
task
done