Qual é a maneira mais ideal de passar um argumento / opção de linha de comando para ser usado em um script? [fechadas]

0

Eu preciso escrever um script que leve a entrada do usuário na linha de comando e usá-lo no shell script. Por exemplo, crie um script que aceite as opções de linha de comando de -u (user) -r (number). Eu não quero usar Perl ou qualquer outra coisa e tudo deve ser feito no mesmo script. Uma segunda parte para essa questão seria como passar algo semelhante a um script diferente, mas não um nome de usuário ou um número de vezes que algo precisaria ser criado.

O script usaria essa informação para criar um uso em lote para criar o número de vezes de bob x do usuário, por exemplo, se eu digitasse

batch user -u bob -r 5

Eu acabaria com as contas de usuário bob1, bob2, bob3, bob4, bob5

Estou perplexo com a melhor maneira de fazer isso.

    
por roberts 04.06.2017 / 14:38

1 resposta

2

Você pode usar getopts para analisar a linha de comando. Veja man bash e procure por getopts para detalhes. Aqui está um exemplo de como ele poderia ser usado:

#!/bin/bash
#
usage="USAGE: ${0/*\/}  [-r <number>]  [-u <user>]"
while getopts ':r:u:' OPT
do
    case "$OPT" in
        r) thenumber="$OPTARG" ;;
        u) theuser="$OPTARG" ;;
        *) echo "$usage" >&2; exit 1 ;;
    esac
done
shift $((OPTIND -1))

echo "thenumber=${thenumber:-<unset>}"
echo "theuser=${theuser:-<unset>}"
exit 0
    
por 05.06.2017 / 00:47

Tags