Ответ 1
Вы хотите ${!#}
, который объединяет счетчик аргументов с косвенностью.
Я ищу, чтобы найти последний позиционный параметр. Я знаю, чтобы найти количество параметров: $#, который логически является последним, но мне нужно найти и использовать то, что находится в последнем параметре позиции.
Было бы так, как если бы $# = 5, я хочу сделать $5.
Я пытался сделать что-то вроде $$ # или ${$ #} как догадки, но не могу получить его.
Экземпляры, где мне нужно будет использовать его, находятся в инструкции if или объявляют его другой переменной или с эхом.
Надеюсь, это понятно. Спасибо заранее.
Вы хотите ${!#}
, который объединяет счетчик аргументов с косвенностью.
Вот еще один способ:
while [[ "$1" != "" ]];do
last_parm=$1
shift
done
echo $last_parm
Дайте тест:
$ ./test.sh 1 2 3 4 5
5
Это похоже на более прямой подход:
${@: -1}
Дополнительная информация здесь. Я не уверен в переносимости за пределами Bash.