Obtendo argumentos com bandeiras em Bash
Para obter argumentos com bandeiras em Bash, você pode usar o comando "getopts". O comando "getopts" é uma função interna no Bash que pode ser usado para analisar opções e argumentos da linha de comando. Leva Três argumentos: a sequência da opção, a variável para armazenar a opção atual, e o nome da variável para armazenar os argumentos restantes. Aqui está um exemplo:
#!/BIN/BASH
enquanto getopts ": x: y:" opt; fazer
Caso $ OPT em
x)
arg1 = "$ optarg"
;;
y)
arg2 = "$ optarg"
;;
\?)
eco "inválido: -$ optarg"> & 2
;;
:)
eco "opção -$ optarg requer um argumento."> & 2
;;
ESAC
feito
turno $ ((optind-1))
eco "argumento 1: $ arg1"
eco "argumento 2: $ arg2"
Aqui, o comando "getopts" é usado para analisar as opções da linha de comando "-x" e "-y". O caractere ":" após cada opção indica que a opção requer um argumento e a variável "opt" armazena a opção atual, e as variáveis "arg1" e "arg2" armazenam os argumentos correspondentes.
A declaração "case" é usada para lidar com cada opção; portanto, se a opção for "x", o argumento será armazenado em "Arg1". Se a opção for "y", o argumento será armazenado em "Arg2".Uma mensagem de erro é mostrada quando uma opção inválida é dada, bem como quando nenhum argumento é fornecido, mesmo que uma opção exigir um.
O optarg é usado para armazenar o valor do argumento que é aprovado com as opções -x ou -y, enquanto o Optind -1 é usado para mudar os parâmetros posicionais para excluir as opções e seus argumentos, deixando apenas os argumentos de não opção.
Depois de analisar as opções, o comando "shift" é usado para remover as opções da lista de argumentos. Isso garante que os argumentos restantes sejam armazenados na variável correta.Para usar o script com sinalizadores, você pode executar o script com as opções e argumentos da bandeira, como este:
./- -
Conclusão
Usando sinalizadores para transmitir argumentos opcionais para scripts agitados pode tornar os scripts mais flexíveis e poderosos e com o comando "getopts", você pode analisar facilmente argumentos e opções de linha de comando. Seguindo o exemplo deste artigo, você pode implementar sinalizadores em seus próprios scripts e manusear com facilidade.