eval을 사용하지 않고 $@/argv/argument 배열의 마지막 요소 가져오기 [중복]

eval을 사용하지 않고 $@/argv/argument 배열의 마지막 요소 가져오기 [중복]

만약 내가한다면:

set a b c

$@마지막 요소 인 에 어떻게 액세스합니까 c?

$@처음에는 배열에 첨자를 추가하고 싶었습니다 .

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

하지만:

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

나는 마침내 알아냈다:

eval echo "\$$#"

$@Without 의 마지막 요소를 얻는 방법이 있나요 eval?

먼저 다른 어레이에 복사하고 액세스하는 유일한 방법입니까 ${copy[-1]}?

답변1

이르카초가 제안한다매우 읽기 쉽습니다:

echo "${@:$#}"

관련 정보