Используя специальный аргумент
$#
который возвращает количество позиционных аргументов, заданных для этого вызова оболочки.
От man bash
...
$ 1 - $ 9 эти переменные являются позиционными параметрами.
$ 0 имя команды, выполняемой в данный момент.
$ # количество позиционных аргументов, переданных этому вызову оболочки.
$? статус выхода последней выполненной команды задается в виде десятичной строки. Когда команда завершается успешно, она возвращает состояние выхода 0 (ноль), в противном случае она возвращает ненулевое состояние выхода.
$$ номер процесса этой оболочки - полезно для включения в имена файлов, чтобы сделать их уникальными.
$! идентификатор процесса последней команды, запущенной в фоновом режиме.
$ - текущие параметры, предоставленные для этого вызова оболочки.
$ * строка, содержащая все аргументы оболочки, начиная с $ 1.
$ @ то же, что и выше, за исключением указанных в кавычках.
Эти специальные аргументы очень полезны для сбора данных о текущей оболочке.