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
Другие вопросы по тегам