Array
挑選特定的數組元素
我剛剛開始閱讀
"$@"
and"$*"
,我想知道我是否可以專門指向"$@"
數組中的一個元素。就像不使用任何循環一樣,我希望能夠從"$@"
. 有沒有辦法這樣做"$1+@"
或類似的事情?我已經知道"${1}"
但想具體了解"$@"
and"$*"
。我嘗試搜尋它,但沒有找到與此相關的任何內容。
據說位置參數不是數組。
設置它們的方式是 via
set
。沒有其他陣列需要它。$ set -- one two t33 f44 $ printf '%s\n' "$@" one two t33 f44
但至少在 bash(以及 ksh 和 zsh)中,可以很容易地選擇它們:
$ set -- one two t33 f44 $ echo "${@:2:1}" two $ echo "${@:2:2}" two t33
$@
不是一個數組:它只是一個參數列表。在 bash 中,您可以創建一個數組,使用 from 的值對其進行初始化,$@
然後使用索引:declare -a foo=($@) echo ${foo[2]}
數組索引從 0 開始,因此上面將第三個參數列印到腳本中。