Atualizado: 24/10/2024

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, que formata a data, e o inserimos na string do comando 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 na variável 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:

  • ${parameter:-value}: 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.

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 não está definida, e o comando echo não mostra nada. Agora, vamos aplicar os operadores de substituição.

O operador ${parameter:-value} mostra o valor se a variável não estiver definida:

programicio@Programicio:~$ echo ${NIL:-Variable NIL undefined}
Variable NIL undefined

O operador ${parameter=value} define o valor da variável se ela não estiver definida:

programicio@Programicio:~$ echo ${NIL=default}
default

O operador ${parameter:=value} atribui o valor à variável se ela não tiver valor ou não existir. Acima, a variável NIL foi definida como "default". Ou seja, a variável NIL existe e tem um valor. Vamos aplicar este operador à variável NIL:

programicio@Programicio:~$ echo ${NIL:=null}
default
programicio@Programicio:~$ NIL=
programicio@Programicio:~$ echo ${NIL:=null}
null

Note que, inicialmente, NIL tem um valor, então seu valor não é alterado. Após o comando NIL=, a variável NIL ainda existe, mas seu valor não está definido. Em seguida, usamos o operador := para definir o valor como null.

O operador ${parameter:?value} mostra o valor se o parâmetro não existir ou estiver vazio:

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 foi definida anteriormente como null, o operador é aplicado a ela. A variável VOID não foi definida anteriormente, então vemos a mensagem especificada.

O operador ${parameter:+value} mostra o valor se a variável tiver um valor:

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 e VOID. Como apenas NIL foi definida anteriormente, a mensagem é exibida somente para ela.

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 = define o valor se a variável não existir. Neste caso, se as variáveis NIL e VOID não estiverem definidas, atribuímos o valor undefined a elas. No entanto, se essas variáveis estiverem definidas, elas mantêm seus valores.

Política de Privacidade

Copyright © www.programicio.com Todos os direitos reservados

É proibida a reprodução do conteúdo desta página sem autorização prévia do autor.

Contato: programicio@gmail.com