Argumentos do Script - Linux
Ao executar um script, é possível passar alguns argumentos pela linha de comando. Dentro do script, esses argumentos estão disponíveis através de números de argumentos. Por exemplo, o primeiro argumento está disponível através de $1
$2
$0
Vamos definir o seguinte script hello
#!/bin/bash
echo $0
exit 0
Neste caso, o script exibe no console o nome do próprio script. Vamos executar o script:
programicio@Programicio:~$ bash hello hello
Agora, vamos passar um argumento para o script e utilizá-lo. Para isso, modificamos o script da seguinte forma:
#!/bin/bash
# o script aceita um argumento e o exibe no console
echo $1
exit 0
Neste caso, estamos exibindo o primeiro argumento no console usando o identificador $1
programicio@Programicio:~$ bash hello Tom Tom
Os argumentos são especificados após o nome do script, separados por espaço. Aqui, passamos apenas um argumento, "Tom". Se for necessário passar uma string como argumento, onde as palavras são separadas por espaços, essa string deve ser colocada entre aspas:
programicio@Programicio:~$ bash hello "Hello www.programicio.com" Hello www.programicio.com
Da mesma forma, é possível passar um número maior de argumentos. Por exemplo:
#!/bin/bash
# o script aceita argumentos e os exibe no console
ARG1=$1
ARG2=$2
ARG3=$3
SCRIPTNAME=$0
echo The name of this script is $SCRIPTNAME
echo The first argument is $ARG1
echo The second argument is $ARG2
echo The third argument is $ARG3
exit 0
Neste caso, passamos três argumentos. Vamos testar o script:
programicio@Programicio:~$ bash hello Tom 39 tom@mimimail.com The name of this script is hello The first argument is Tom The second argument is 39 The third argument is tom@mimimail.com programicio@Programicio:~$
Identificadores Especiais
Além de $0
: número de argumentos$#
e$@
: string com os argumentos$*
Vamos usar esses identificadores no script:
#!/bin/bash
echo the number of arguments is $#
echo the arguments are $@
echo the arguments are $*
exit 0
Vamos chamar o script:
programicio@Programicio:~$ bash hello a b c the number of arguments is 3 the arguments are a b c the arguments are a b c