Resultados de Comandos e Operadores - Linux
Substituição de Comandos
O Linux permite obter e salvar o resultado de comandos para uso em outros comandos. Esta funcionalidade é chamada de "substituição de comandos" ou command substitution. Para isso, o comando é colocado entre crases. Por exemplo, vamos exibir a data atual no formato "dd.MM.yy":
programicio@Programicio:~$ echo "today is `date +%d.%m.%y`" today is 06.07.24
Neste caso, obtemos o resultado do comando date +%d.%m.%y
echo
Podemos também salvar o resultado do comando em uma variável:
programicio@Programicio:~$ TODAY=`date +%d.%m.%y` programicio@Programicio:~$ echo "today is $TODAY" today is 22.03.24
Aqui, salvamos o resultado do comando date +%d.%m.%y
TODAY
Operadores de Substituição
Antes de executar algumas ações, pode ser necessário verificar se uma variável possui um valor. Para isso, o Bash oferece operadores de substituição, ou substitution operators. Por exemplo, usando esses operadores, podemos atribuir um valor padrão se a variável não estiver definida. Podemos usar os seguintes operadores de substituição:
: mostra o valor se o parâmetro não estiver definido.${parameter:-value}
: atribui o valor ao parâmetro se ele não existir. Este operador não faz nada se o parâmetro existir, mas estiver vazio.${parameter=value}
: atribui o valor ao parâmetro se ele não tiver valor ou não existir.${parameter:=value}
: mostra o valor se o parâmetro não existir ou estiver vazio. O uso desta construção interrompe imediatamente o script do shell.${parameter:?value}
: mostra o valor se o parâmetro tiver valor. Se o parâmetro estiver vazio, nada acontece.${parameter:+value}
Vamos ver como utilizá-los. Primeiro, uma variável pode não estar definida, por exemplo:
programicio@Programicio:~$ echo $NIL
Aqui, a variável NIL
echo
O operador ${parameter:-value}
programicio@Programicio:~$ echo ${NIL:-Variable NIL undefined} Variable NIL undefined
O operador ${parameter=value}
programicio@Programicio:~$ echo ${NIL=default} default
O operador ${parameter:=value}
NIL
NIL
NIL
programicio@Programicio:~$ echo ${NIL:=null} default programicio@Programicio:~$ NIL= programicio@Programicio:~$ echo ${NIL:=null} null
Note que, inicialmente, NIL
NIL=
NIL
:=
null
O operador ${parameter:?value}
programicio@Programicio:~$ echo ${NIL:?Variable NIL is undefined} null programicio@Programicio:~$ echo ${VOID:?Variable VOID is undefined} bash: VOID: Variable VOID is undefined
Como a variável NIL
null
VOID
O operador ${parameter:+value}
programicio@Programicio:~$ echo ${NIL:+Variable NIL is defined} Variable NIL is defined programicio@Programicio:~$ echo ${VOID:+Variable VOID is defined} programicio@Programicio:~$
Aqui, verificamos duas variáveis: NIL
VOID
NIL
Os resultados desses operadores também podem ser atribuídos a variáveis:
programicio@Programicio:~$ NIL=null programicio@Programicio:~$ NIL=${NIL=undefined} programicio@Programicio:~$ echo $NIL null programicio@Programicio:~$ VOID=${VOID=undefined} programicio@Programicio:~$ echo $VOID undefined
O operador =
NIL
VOID
undefined