加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

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

发布时间:2020-12-15 18:28:43 所属栏目:安全 来源:网络整理
导读:我有一个名为dbs.txt的简单文件 我想在bash中使用for循环将该文件的行回显到屏幕. 该文件如下所示: db1db2db3db4 bash文件名为test.sh 它看起来像这样 for i in 'cat dbs.txt'; doecho $idonewait 当我通过输入以下命令运行文件时: bash test.sh 我得到终
我有一个名为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 "%sn" "$line"
done < "$1"

我记得在某处读取printf比echo更安全,因为echo接受的选项可能因平台而异.所以养成使用printf的习惯可能是值得的.

有关read builtin的说明,请查看shell的手册页.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读