在我們的類腳本賦值中,我們需要傳遞任意數量的目錄作爲位置參數,並且我們的腳本(最終)將計算,顯示並保存關於作爲參數傳遞的目錄的某些信息。我們需要對我們希望保存結果的文件的名稱進行幾次測試。如何在bash腳本中分配傳遞給變量的位置參數?
我的問題無疑是一個簡單的問題,我想知道如何將存儲在[email protected]
中的信息傳遞給一個變量,然後我可以將它用於所有需要做的測試。
在我們的類腳本賦值中,我們需要傳遞任意數量的目錄作爲位置參數,並且我們的腳本(最終)將計算,顯示並保存關於作爲參數傳遞的目錄的某些信息。我們需要對我們希望保存結果的文件的名稱進行幾次測試。如何在bash腳本中分配傳遞給變量的位置參數?
我的問題無疑是一個簡單的問題,我想知道如何將存儲在[email protected]
中的信息傳遞給一個變量,然後我可以將它用於所有需要做的測試。
可以使用for
遍歷[email protected]
數組遍歷:
for arg in "[email protected]"
do
# use $arg
done
$ @是一個變量。所以是$ _和$ 1,$ 2,...
聽起來你想要做的事可以通過使用「shift」和循環(「for」或「while」)來實現。或者,只需使用:
for i in [email protected]; do ...; done
供您參考:
shift: shift [n] The positional parameters from $N+1 ... are renamed to $1 ... If N is not given, it is assumed to be 1.
for i in [email protected]; do echo $i; done
在那裏你更換回聲$我不管你想與每個參數做。
你也可以參考[email protected]
中的參數,它有點像數組。它是一個,但不能使用數組下標。但是,您可以使用陣列切片:
echo ${@:3:1} # [email protected] is ONE-based
將echo
第三個參數。
echo ${@:4:3}
將echo
第四,第五和第六個參數。
順便說一句,[email protected]
的「下標」是$1
,$2
... $#
。最後一個,$#
,是參數數量的計數。 $0
有特殊的作用。它包含腳本的名稱和路徑。
您也可以將整個事物(甚至是其中的一部分)分配給可以使用下標的數組。
some_array=("[email protected]")
echo ${some_array[3]} # the fourth element (ZERO based)
echo ${some_array[3]:4:3} # 5th, 6th and 7th chars of the fourth element
echo ${some_array[@]:4:3} # 5th, 6th and 7th ELEMENTS
echo ${some_array[@]: -1} # the last element (notice the space)
@mrweinerdog:+1從我codaddict爲是引用`$ @`這將保護援引包含單詞拆分字符(通常是空格,製表符和換行符)參數的唯一的一個。 – 2010-12-05 04:39:32