我想檢查一個目錄是否有文件或不在bash中。 我的代碼在這裏。如何在bash中測試文件名擴展結果?
for d in {,/usr/local}/etc/bash_completion.d ~/.bash/completion.d
do
[ -d "$d" ] && [ -n "${d}/*" ] &&
for f in $d/*; do
[ -f "$f" ] && echo "$f" && . "$f"
done
done
問題是「〜/ .bash/completion.d」沒有文件。 因此,$ d/*被認爲是簡單的字符串「〜/ .bash/completion.d/*」,而不是作爲文件名擴展結果的空字符串。 作爲該代碼的結果時,bash試圖運行
. "~/.bash/completion.d/*"
,當然,它產生錯誤消息。
任何人都可以幫助我嗎?
簡而言之,我想知道如何爲無效的文件名字符串強制擴展文件名。 – user159087 2009-08-21 09:44:22