只需知曉一個簡單的shell腳本,有點糊塗循環:猛砸與通配符和隱藏文件
這裏是我的腳本:
% for f in $FILES; do echo "Processing $f file.."; done
命令:
ls -la | grep bash
生產:
% ls -a | grep bash
.bash_from_cshrc
.bash_history
.bash_profile
.bashrc
當
FILES=".bash*"
我得到與ls -a相同的結果(格式不同)。然而,當
FILES="*bash*"
我得到這樣的輸出:
Processing *bash* file..
這不是預期的輸出,而不是我所期望的。我不允許在文件名的開頭有一個通配符?是個 。在某種程度上文件名稱「特殊」的開頭?
設置
FILES="bash*"
也不起作用。
正如下面的號說,你可能想使用一個bash標誌修改行爲。 (shopt -s dotglob) – 2010-01-26 16:36:51