Gostaria de saber como adicionar argumentos aos comandos.
Eu gostaria que fosse mais ou menos assim:
$ arg --test
'arg' seria o comando principal e '--test' seria o argumento.
Responder1
Para argumentos numerados entre 0
e 9
onde x
está o argumento numerado específico, use esta notação:
$x
Para argumentos numerados acima daquele onde x
está o argumento numerado específico, use esta notação:
${x}
Para obter uma lista de todos os argumentos, use isto:
${@}
Ou isto:
${*}
Observe que, quando colocado entre aspas duplas, ${*}
expande todos os argumentos separados por espaço (geralmente, tecnicamente, é o primeiro caractere da variável $IFS
(separador de campo interno)) em uma string. ${@}
se expande em várias strings quando está entre aspas duplas.
O bracketing não é necessário ao usar ${@}
ou ${*}
.
Responder2
Esta pode ser uma duplicata das perguntas respondidas. No entanto, encontre abaixo uma possível solução para sua solicitação como um script de shell muito básico.
#!/bin/bash
for i in ${@} ; do
case ${i} in
--test) echo "test option found"
;;
*) echo "Usage: $0 [--test]"
exit 1
esac
done
echo "$0 finished."
Você pode aprender algo mais se brincar com as opções desse script de shell na linha de comando. Isso pode adicionar à primeira resposta porJL2210bastante apropriadamente.
NB A linha echo "Usage: $0 [--test]"
visa oferecer alguma mensagem de ajuda e faz uso da convenção para indicar argumentos opcionais entre colchetes.
Espero que isto ajude.