日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

shell脚本while read line的使用

發(fā)布時(shí)間:2023/12/20 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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

#### 參考答案
```

#!/bin/bash sum=0 while read line do line_n=`echo $line|sed 's/[^0-9]//g'|wc -L` echo $line_n sum=$[$sum+$line_n] done < $1 echo "sum:$sum"

  

當(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)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。