O comando shell e quaisquer argumentos para esse comando aparecem como variáveis de shell numeradas : $0
tem o valor de string do próprio comando, algo como script
, ./script
, /home/user/bin/script
como queiras. Todos os argumentos aparecem como "$1"
, "$2"
, "$3"
e assim por diante. A contagem de argumentos está na variável do shell "$#"
.
Formas comuns de lidar com isso envolvem comandos shell getopts
e shift
. getopts
é muito parecido com a função da biblioteca C getopt()
. shift
move o valor de $2
para $1
, $3
para $2
e assim por diante; $#
é diminuído. O código acaba vendo o valor de "$1"
, fazendo coisas usando case
… esac
para decidir uma ação e, em seguida, fazendo um shift
para mover $1
para o próximo argumento. Ele só precisa examinar $1
e talvez $#
.