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