Bash: Как правильно использовать getops для разбора данных в аргументах?
Мне нужно создать скрипт.
Сценарий должен принимать следующие параметры командной строки: -n account name
, а также -r number of accounts
, После выполнения сценарий должен создать пакет учетных записей пользователей на основе имени учетной записи и количества учетных записей.
Например:/usr/local/bin/batch_user -n bob -r 5
следует создать учетные записи пользователей bob1, bob2, bob3, bob4, bob5
Это первый раз, когда я использую getopts
и у меня есть некоторые проблемы с пониманием, как его использовать, вот что я написал до сих пор:
#!/bin/bash
usage () { $0 -n usernanme -r number of creations };
while getopts ":n:r:" arg; do
case "${arg}" in
n)
n=${OPTARG}
;;
r)
r=${OPTARG}
;;
esac
done
Во-первых, я не уверен, как анализировать данные после первого параметра (-n), а затем как запустить число (-r) для создания пользователей? заранее спасибо
1 ответ
Решение
Ты можешь использовать:
#!/bin/bash
usage () { echo "$0 -n usernanme -r number of creations"; }
while getopts ":n:r:" arg; do
case "${arg}" in
n) n=${OPTARG} ;;
r) r=${OPTARG} ;;
esac
done
for ((i=0; i<r; i++)); do
echo "Adding user: ${n}${i}"
done