的test.txt:
1 1
2 2
3 3
test.sh:
for ln in $(head -3 test.txt)
do
echo "New line: $ln";
done
我希望:
New line: 1 1
New line: 2 2
New line: 3 3
...但输出是:
New line: 1
New line: 1
New line: 2
New line: 2
New line: 3
New line: 3
更改为:
"$(head -3 test.txt)"
......导致:
New line: 1 1
2 2
3 3
这有什么问题?显然,空间是问题所在。任何简单的解决方法?非常感谢提前。
答案 0 :(得分:4)
如果您想逐行阅读,请尝试以下方法:
head -3 test.txt | while read line; do
echo $line
done
通常,shell使用空格来标记事物,所以如果你这样做:
for ln in $(head -3 test.txt)
最终看起来像这样:
for ln in 1 1 2 2 3 3
...这就是你获得输出的原因。