我有一個簡單的bash腳本,simple.sh如下:爲什麼我無法將目錄作爲參數傳遞給bash中的for循環?
#/usr/local/bin/bash
for i in $1
do
echo The current file is $i
done
當我用下面的參數運行它:
./simple.sh /home/test/*
它只會打印並列出的第一個文件位於在目錄中。
但是,如果我改變我的simple.sh到:
#/usr/local/bin/bash
DIR=/home/test/*
for i in $DIR
do
echo The current file is $i
done
,將正確的目錄中打印出的文件。有人可以幫助解釋爲什麼傳遞的參數不會顯示相同的結果嗎?
這應該是'「$ @」',因此它甚至適用於名稱中帶有空格的文件。 – Jens
是的,當然這應該像「$ @」一樣...... – Oni1
並且使用'「$ i」',空白空間也保留在消息中。這是關於細節的一切:-) – Jens