shell
读取⽂件
⽅法
1
:
while
循环中执⾏效率最⾼,最常⽤的⽅法。
while read line
do
echo $line
done < filename
注释:这种⽅式在结束的时候需要执⾏⽂件,就好像是执⾏完的时候再把⽂件读进去⼀样。
⽅法
2
:
管道法
: cat $FILENAME | while read LINE
cat filename | while read line
do
echo $line
done
注释:当遇见管道的时候管道左边的命令的输出会作为管道右边命令的输⼊然后被输⼊出来。
⽅法
3 for
循环。
for line in `cat filename`
do
echo ${line}
done
注释:这种⽅式是通过
for
循环的⽅式来读取⽂件的内容相⽐⼤家很熟悉了,这⾥不多说。
在各个⽅法中,
for
语句效率最⾼,⽽在
while
循环中读写⽂件时,第⼀种⽅式执⾏效率最⾼。
for
逐⾏读和
while
逐⾏读是有区别的
,
如
:
$ cat t.txt
1111
2222
3333 4444 555
$ cat t.txt | while read line; do echo ${line}; done
1111
2222
3333 4444 555
$ for line in `cat t.txt`; do echo ${line}; done
1111
2222
3333
4444
555
eg:
update_config()
{
while
read newfileline;
do
flag=
false
if
[[ -z $newfileline || ${newfileline:
0
:
1
} ==
"#"
|| ${newfileline:
0
:
1
} ==
""
]];
then
echo
"$newfileline"
>> $PRODUCT_BACKUP_PATH/${SERVICE_NAME}.properties
continue
else
while
read oldfileline;
do
if
[[ -z $oldfileline || ${oldfileline:
0
:
1
} ==
"#"
|| ${oldfileline:
0
:
1
} ==
""
]];
then
continue
elif
[[ ${newfileline%=*} == ${oldfileline%=*} ]];
then
flag=
true