Как узнать количество аргументов, передаваемых скрипту оболочки, минус один?

Я хотел бы знать, как указать количество аргументов, передаваемых скрипту оболочки, минус 1. Я попытался так: $ {# - 1}, но это не работает. Может ли кто-нибудь помочь мне, пожалуйста? спасибо за ответ

0
задан 26 April 2019 в 15:49

1 ответ

Вы можете использовать синтаксис арифметического расширения для выполнения вычислений с переменными и получить число аргументов для вашего скрипта или текущей функции из $#:

count_minus_one=$(( $# - 1 ))

echo "$count_minus_one"

Это может быть предпочтительнее сначала присвоить число всех аргументов пользовательской переменной, что особенно необходимо, если вы хотите, чтобы длина произвольного массива вместо числа аргументов скрипта / функции, потому что вы не можете сделать правильное расширение переменной в арифметических расширениях. Это будет выглядеть так:

all_count=$#
count_minus_one=$(( all_count - 1 ))

echo "$count_minus_one"
0
ответ дан 26 April 2019 в 15:49

Другие вопросы по тегам:

Похожие вопросы: