Linux:Рецепты/Обработать большое количество аргументов в BASH скрипте

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску

Проверка/Оформление/Редактирование: Мякишев Е.А.


Обработать большое количество аргументов в BASH скрипте

Проблема

Ваш Bash скрипт получает большое количество аргументов и вам необходимо их обработать.

Решение

Для этого подойдет команда shift, ниже код для примера обработки переданных аргументов:

count=1

while [[ $# -gt 0 ]]; do
	echo "Аргумент $count = $1"
	count=$((count+1))
	shift
done
Примечание

$# - здесь хранится количество переданных аргументов, после выполнения команды shift, оно уменьшается на 1.

Примечание

К переданным аргументам можно получить доступ через переменные вида: $1, $2, $3 и т.д. до $9. Для получения доступа к переменным больше $9, используйте {}: ${10}, ${11} и т.д.

Примечание

Каждый раз когда выполняется команда shift, значение $2 перемещается в $1, $3 в $2 и т.д.

См.также

Внешние ссылки