最近在学习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为假。至于为什么是这样,我也没有理解透彻,这里就先特殊记忆吧。