[root@zt94886 ~]# less 1.txt
asdc
sadca
asdc
方式1:while循環逐行讀取文件內容
#!/bin/bash
cat ./1.txt | while read line; do
echo $line
done
方式2:while循環逐行讀取文件內容
#!/bin/bash
while read LINE; do
echo $line
done < ./1.txt
執行結果:
[root@zt94886 ~]# sh 1.sh
asdc
sadca
asdc
方式3:for循環批量讀取多個文件內容:
[root@zt94886 /script/day/var]# ls
1.txt 2.txt 3.txt
[root@zt94886 /script/day/var]# pwd
/script/day/var
[root@zt94886 ~]# less /script/day/var/1.txt
asdcasd
asdcasdc
asdcasdc
asdcasdc
asdcasdc
asdcasdc
asdcasdc
[root@zt94886 ~]# less /script/day/var/2.txt
12123
123123
123123
[root@zt94886 ~]# less /script/day/var/3.txt
asdc asdc
sadcasdc
asdcasdc asdcasdc asdcawdc
asdc
asdcasdcasdc
asdcasdcasdc
asdcasdcasdc
#!/usr/bin/bash
cd /script/day/var/
for i in $(ls *)
do
cat $i | while read line
do
echo $line
done
done
執行結果:
[root@zt94886 ~]# sh for.sh
asdcasd
asdcasdc
asdcasdc
asdcasdc
asdcasdc
asdcasdc
asdcasdc
12123
123123
123123
asdc asdc
sadcasdc
asdcasdc asdcasdc asdcawdc
asdc
asdcasdcasdc
asdcasdcasdc
asdcasdcasdc
注意:使用For循環逐行讀取文件時,For循環取值列表是以空白符或者TAB分割,針對空行,For循環會忽略,而While循環,針對空行還會輸出。初學Shell,難免有錯誤之處,歡迎指正!