shell脚本while read line的使用
生活随笔
收集整理的這篇文章主要介紹了
shell脚本while read line的使用
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
#### 題目要求
計(jì)算文檔a.txt中每一行中出現(xiàn)的數(shù)字個(gè)數(shù)并且要計(jì)算一下整個(gè)文檔中一共出現(xiàn)了幾個(gè)數(shù)字。例如a.txt內(nèi)容如下:
12aa*lkjskdj
alskdflkskdjflkjj
我們腳本名字為 ncount.sh, 運(yùn)行它時(shí):
bash ncount.sh a.txt
輸出結(jié)果應(yīng)該為:
2
0
sum:2
#### 參考答案
```
當(dāng)我們輸入的字段比變量數(shù)目多時(shí),最后一個(gè)變量的值將不只一個(gè)字段,而是所有剩余的內(nèi)容;當(dāng)輸入字段比變量數(shù)少時(shí),多余的變量將是空值,你可以自己試試。現(xiàn)在我們再來看 while read line do … done < file read通過輸入重定向,把file的第一行所有的內(nèi)容賦值給變量line,循環(huán)體內(nèi)的命令一般包含對變量line的處理;然后循環(huán)處理file的第二行、第三行。。。一直到file的最后一行。還記得while根據(jù)其后的命令退出狀態(tài)來判斷是否執(zhí)行循環(huán)體嗎?是的,read命令也有退出狀態(tài),當(dāng)它從文件file中讀到內(nèi)容時(shí),退出狀態(tài)為0,循環(huán)繼續(xù)驚醒;當(dāng)read從文件中讀完最后一行后,下次便沒有內(nèi)容可讀了,此時(shí)read的退出狀態(tài)為非0,所以循環(huán)才會退出。 另一種也很常見的用法: command | while read line do … done 如果你還記得管道的用法,這個(gè)結(jié)構(gòu)應(yīng)該不難理解吧。command命令的輸出作為read循環(huán)的輸入,這種結(jié)構(gòu)長用于處理超過一行的輸出,當(dāng)然awk也很擅長做這種事。
?
轉(zhuǎn)載于:https://www.cnblogs.com/weifeng1463/p/10323331.html
總結(jié)
以上是生活随笔為你收集整理的shell脚本while read line的使用的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 关于2023计算机408考研
- 下一篇: 连接动态链接库时找不到链接库的解决办法