2010-10-09 24 views

回答

3

使用數組:

abc=($(find ...)) 
abc_length=${#abc[@]} 

檢索第n個結果,說10日:

echo ${abc[9]} 

或列出所有:

for dir_name in "${abc[@]}"; do 
    echo $dir_name 
done 

更新:提問者不似乎想要在腳本中處理,所以:

abc_length=$(find ... | wc -l) 

您可能希望通過1的人數減少,因爲第一個結果是~/$folder

abc_length=$(($(find ... | wc -l) - 1)) 
+0

當試圖通過abc循環時,它只會列出第一個結果! \t abc =($(find〜/ $ folder -name「$ file @ *」-type f))和循環:​​for「$ abc」中的j。有什麼不對? – 2010-10-09 22:58:30

+0

在$ {abc [@]}'中使用'for j''。 – livibetter 2010-10-09 23:07:31

+1

不要忘記引號:'for $ in'$ {abc [@]}「'。 – 2010-10-09 23:10:46

4

我不知道是什麼你的意思是「項目」,所以我會承擔「目錄條目」。假設你的名字中沒有帶有換行符的文件,echo "$abc" | wc -l就可以做到這一點。

如果要計算字符數,請改爲使用wc -c

+0

回聲 「$ ABC」 | wc - l工作正常。但是,如何將這個值變爲一個變量? – 2010-10-09 22:31:52

+1

只是'abc_length = $(find ... | wc -l)'會做你想做的事情。 – livibetter 2010-10-09 22:34:20

+0

我目前有:results ='find〜/ $ folder -name「$ file @ *」-type f'。我怎樣纔能有一個result_count而不是再次調用find,將只使用已經在「results」變量中的數據?謝謝 – 2010-10-09 22:45:20