我在寫一個bash腳本,它使用while
循環來處理從特定命令輸出的行。我還爲找到的每一行增加一個變量(加1)。變量在bash中遞增,while循環結束時重置爲0
下面有腳本的有問題的部分的一個示例:
#!/bin/bash
count=0
ls | while read f
do
count=$(($count+1))
echo "Count is at ${count}"
done
echo "Found total of ${count} rows"
基本上,它遞增$count
可變得很好,但然後當我while循環..其復位爲0後打印$count
。 。
輸出示例:
Count is at 1
Count is at 2
Count is at 3
Count is at 4
Count is at 5
Found total of 0 rows
任何想法,爲什麼環完成後$count
會復位?
我也嘗試添加使用&&
操作上循環的最後echo語句,就像這樣:
count=0
ls | while read f
do
count=$(($count+1))
echo "Count is at ${count}"
done && echo "Found total of ${count} rows"
沒有成功。
任何幫助,將不勝感激
在任何情況下都不要分析'ls'的輸出;使用'in f in *;而不是。 – chepner