Array

挑選特定的數組元素

  • December 15, 2018

我剛剛開始閱讀"$@"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 開始,因此上面將第三個參數列印到腳本中。

引用自:https://unix.stackexchange.com/questions/377840