前端之家收集整理的这篇文章主要介绍了
如何使用bash脚本和for循环回显文件行,
前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个名为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
为什么第一个脚本不起作用?
您可以使用shell内置读取而不是cat.如果你只处理一个
文件并且它不是很大,那么以下
内容可能比大多数
解决方案更容易,更便携:
#!/bin/sh
while read line
do
printf "%s\n" "$line"
done < "$1"
我记得在某处读取printf比echo更安全,因为echo接受的选项可能因平台而异.所以养成使用printf的习惯可能是值得的.
有关read builtin的说明,请查看shell的手册页.
原文链接:https://www.f2er.com/bash/385322.html