Я хотел бы знать, как указать количество аргументов, передаваемых скрипту оболочки, минус 1. Я попытался так: $ {# - 1}, но это не работает. Может ли кто-нибудь помочь мне, пожалуйста? спасибо за ответ
Вы можете использовать синтаксис арифметического расширения для выполнения вычислений с переменными и получить число аргументов для вашего скрипта или текущей функции из $#
:
count_minus_one=$(( $# - 1 ))
echo "$count_minus_one"
Это может быть предпочтительнее сначала присвоить число всех аргументов пользовательской переменной, что особенно необходимо, если вы хотите, чтобы длина произвольного массива вместо числа аргументов скрипта / функции, потому что вы не можете сделать правильное расширение переменной в арифметических расширениях. Это будет выглядеть так:
all_count=$#
count_minus_one=$(( all_count - 1 ))
echo "$count_minus_one"