【发布时间】:2012-11-08 21:37:37
【问题描述】:
我有一个名为 dbs.txt 的简单文件 我想使用 bash 中的 for 循环将该文件的行回显到屏幕上。
文件如下所示:
db1
db2
db3
db4
bash 文件名为 test.sh 看起来像这样
for i in 'cat dbs.txt'; do
echo $i
done
wait
当我通过输入运行文件时:
bash test.sh
我得到终端输出:
cat dbs.txt
而不是希望
db1
db2
db3
db4
以下 bash 文件效果很好:
cat dbs.txt | while read line
do
echo "$line"
done
为什么第一个脚本不起作用?
【问题讨论】:
-
fwiw,最好使用
while read而不是for i in $(cat dbs.txt) -
如果任何行包含空格,第一个(即使已修复)也不会逐行回显
-
你的单引号应该是反引号:
for i in
cat dbs.txt; do echo $i done wait
标签: bash