1
我有以下腳本:Bash。 shell變量邏輯
ls -l | while read permissions number user user2 size month day hour filename
do
if [[ "$filename" == *foo* ]]
then
scount=`expr $scount + $size`
fi
done
echo $scount
腳本檢查我的文件夾中的文件的文件名和大小,然後它會檢查包含「富」字的文件,那麼它需要它的大小和添加它。
我有以下問題,如果我從循環內部調用scount變量顯示數字,但是當它在外面時,它不顯示任何內容,就好像該變量不存在一樣。它與shell會話有關嗎?如何在循環外部顯示變量?
只是一個猜測,但也許你必須聲明你的變量在循環之外:-) – Gudgip
你正在操縱一個子shell中的變量。參考鏈接的問題獲取答案。 – devnull
作爲一個旁註:寧可使用'stat'而不是'ls'來解析關於文件的信息。如果你想計算給定數量的文件的大小,那麼看看'du'。 – Saucier