Linux:Рецепты/Обработать большое количество аргументов в BASH скрипте: различия между версиями
Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску
Myagkij (обсуждение | вклад) |
Myagkij (обсуждение | вклад) |
||
(не показано 5 промежуточных версий этого же участника) | |||
Строка 17: | Строка 17: | ||
while [[ $# -gt 0 ]]; do | while [[ $# -gt 0 ]]; do | ||
echo "Аргумент $count = $1" | echo "Аргумент $count = $1" | ||
count=$(( | count=$((count+1)) | ||
shift | shift | ||
done | done | ||
</syntaxhighlight> | </syntaxhighlight> | ||
{{ | {{Примечание1| | ||
'''$#''' - здесь хранится количество переданных аргументов, после выполнения команды shift, оно уменьшается на 1. | |||
}} | |||
{{Примечание1| | |||
К переданным аргументам можно получить доступ через переменные вида: $1, $2, $3 и т.д. до $9. Для получения доступа к переменным больше $9, используйте {}: ${10}, ${11} и т.д. | |||
}} | |||
{{Примечание1| | |||
Каждый раз когда выполняется команда shift, значение $2 перемещается в $1, $3 в $2 и т.д. | Каждый раз когда выполняется команда shift, значение $2 перемещается в $1, $3 в $2 и т.д. | ||
}} | }} |
Текущая версия от 10:13, 6 августа 2023
Проверка/Оформление/Редактирование: Мякишев Е.А.
Обработать большое количество аргументов в BASH скрипте
Проблема
Ваш Bash скрипт получает большое количество аргументов и вам необходимо их обработать.
Решение
Для этого подойдет команда shift, ниже код для примера обработки переданных аргументов:
count=1
while [[ $# -gt 0 ]]; do
echo "Аргумент $count = $1"
count=$((count+1))
shift
done
См.также
Внешние ссылки