bash编程学习 (while\read)

最近在学习linux,bash脚本编程
我想要实现通过sh脚本来读取文件中的内容
如下是我自己写的:

#! /bin/bash
while true;do
	#读取文件中每一行
	read -r line
	#当变量line中为空,则全部读取完成,退出循环
	if [ -z $line ];then
		break
	fi
	echo $line
#把host.txt文件重定向给while循环
done < host.txt

gpt给的写法:

#! /bin/bash
while read -r line;do
	echo $line
done < host.txt

我对gpt给的写法理解:
当第一次循环时 read -r line 读取host.txt文件中的第一行文本,由于命令执行成功,所以$?变量值为0,为真。
当读取到最后一行后,read -r line执行失败,则$?是一个非0值,所退出循环

这里当时我有个困扰就是0在其他编程语言中为假,非0为真,而在bash中0 为真,非0为假。至于为什么是这样,我也没有理解透彻,这里就先特殊记忆吧。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值