我想在當前目錄中處理一組文件(* .ui)。如果找到一些* .ui文件,以下腳本將按預期工作。但是,如果當前目錄中不存在.ui文件,則for循環將全部輸入相同。這是爲什麼 ?bash:for不存在的文件的循環
for f in *.ui
do
echo "Processing $f..."
done
它打印:
Processing *.ui...
我想在當前目錄中處理一組文件(* .ui)。如果找到一些* .ui文件,以下腳本將按預期工作。但是,如果當前目錄中不存在.ui文件,則for循環將全部輸入相同。這是爲什麼 ?bash:for不存在的文件的循環
for f in *.ui
do
echo "Processing $f..."
done
它打印:
Processing *.ui...
你已經有了如何,「爲什麼」是bash將首先嚐試匹配*.ui
的文件,但如果不工作(它會沒有結果),它會假設你的意思是字符串"*.ui"
。
for f in "*.ui"
do
echo "Processing $f..."
done
WIL確實打印"Processing *.ui"
。
FAQ:'shop -s nullglob' – devnull