假設有一個目錄「富」它包含幾個文件:如何在bash腳本中存儲程序的NUL輸出?
ls foo:
1.aa 2.bb 3.aa 4.cc
現在在bash腳本,我希望計算「FOO」具有特定後綴的文件數和顯示他們,例如:
SUFF='aa'
FILES=`ls -1 *."$SUFF" foo`
COUNT=`echo $FILES | wc -l`
echo "$COUNT files have suffix $SUFF, they are: $FILES"
的問題是:如果SUFF='dd'
,$COUNT
也等於1
。谷歌後,我發現的原因是當SUFF='dd'
,$FILES
是一個空字符串,不是一個程序的空輸出,它將被認爲有一行wc
。 NUL輸出只能通過管道傳遞。所以一個解決方案是:
COUNT=`ls -1 *."$SUFF" foo | wc -l`
但這會導致ls
命令被執行兩次。所以我的問題是:有沒有更好的方法來實現這一目標?
的文件名以'foo'結束?你可以給一個這樣的樣本名稱嗎?你想遞歸搜索子目錄嗎? – Inian
foo是目錄。文件名以aa,bb,cc結尾。不需要搜索子目錄。 – xlwang