shell逐行读取文件cat ./filename | while read line的问题

需求描述

有一个文件list,每行有一个数字,给定一个数字,查询在文件的第几行(行数从0开始),查询数字一定在list中

错误的shell代码

test1.sh,输出0错误 :

正确的shell代码

test2.sh,输出3正确 :

分析

为了方便观察,在while中加入sleep 10

可以看出,cat ./list 通过管道传给while循环,会创建一个进程pid=26613,当循环结束,进程也结束了,i在while循环中,相当于重新定义的局部变量,不影响同名的全局变量

发表评论

电子邮件地址不会被公开。 必填项已用*标注