evalを使用せずに$@/argv/argument配列の最後の要素を取得する[重複]

evalを使用せずに$@/argv/argument配列の最後の要素を取得する[重複]

私がするなら:

set a b c

$@最後の要素にどのようにアクセスしますかc

$@最初は配列に添字を追加したかったのです。

"${@[$#-1]}"

しかし:

bash: ${@[$#-1]}: bad substitution

私はついに見つけました:

eval echo "\$$#"

$@Withoutの最後の要素を取得する方法はありますかeval

まず、別のアレイにコピーしてアクセスする唯一の方法ですか${copy[-1]}

答え1

イルカチョが提案するとても読みやすいです:

echo "${@:$#}"

関連情報