shell循环读取文件

本文介绍了在Shell脚本中高效读取文件内容的四种方法:while循环、重定向法、文件描述符法和for循环。详细讲解了每种方法的工作原理和使用场景,助你提升Shell脚本处理文件的效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

-z “str” :判断字符串为空

-n "str":判断字符串不为空

方法1:while循环中执行效率最高,最常用的方法。
 
function while_read_LINE_bottm(){
 While read LINE
 do
echo $LINE
done  < $FILENAME
}
 
        注释:我习惯把这种方式叫做read釜底抽薪,因为这种方式在结束的时候需要执行文件,就好像是执行完的时候再把文件读进去一样。
 
方法2 : 重定向法;管道法: cat $FILENAME | while read LINE
 
Function While_read_LINE(){
 cat $FILENAME | while read LINE
 do 
echo $LINE
done
}
          注释:我只所有把这种方式叫做管道法,相比大家应该可以看出来了吧。当遇见管道的时候管道左边的命令的输出会作为管道右边命令的输入然后被输入出来。
 
方法3: 文件描述符法
 
Function while_read_line_fd(){
Exec 3<&0
Exec 0<$FILENAME
While read LINE
Do 
 Echo $LINE
 Exec 0<&<3
}
 
        注释: 这种方法分2步骤,第一,通过将所有内容重定向到文件描述符3来关闭文件描述符0.为此我们用了语法Exec 3<&0 。第二部将输入文件放送到文件描述符0,即标准输入。
  
方法4    for  循环。
 
function  for_in_file(){
For  i  in  `cat $FILENAME`
do
echo $i
done
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值