新客立减

shell

读取⽂件

⽅法

1

while

循环中执⾏效率最⾼,最常⽤的⽅法。

while read line

do

echo $line

done  < filename

注释:这种⽅式在结束的时候需要执⾏⽂件,就好像是执⾏完的时候再把⽂件读进去⼀样。

 

⽅法

 

管道法

: 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