如何使用bash脚本和for循环回显文件行

前端之家收集整理的这篇文章主要介绍了如何使用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

猜你在找的Bash相关文章