criação de uma variável e atribuição de um valor à variável

0

Do manual do Bash, um parâmetro é definido se foi atribuído um valor.

  1. No bash, estão os dois conceitos diferentes a seguir:

    • existe uma variável
    • uma variável foi atribuída a um valor, ou seja, está definida?
  2. unset remove uma variável ou função. O unset faz uma variável

    • tornam-se inexistentes ou
    • ainda existe, mas não recebe nenhum valor?
  3. O b= atribui um valor à variável b ? O b está definido agora?

  4. Será que declare a variável cria uma variável, ou seja, uma variável se torna existente?

por Tim 11.02.2016 / 04:58

1 resposta

3

Variável não existe se não estiver definida. Por exemplo,

unset var
echo ${var?"this is not set"}
-bash: var: this is not set

O shell exibe uma mensagem de erro se var não estiver definido. O echo não é executado. (Verifique na man page bash as formas de verificar e atribuir valores a uma variável que existe, mas pode ou não ter um valor, ou um que não exista.)

O caso mais comum é geralmente a substituição sem erro, e seria tratado assim:

unset var
echo ${var:-This is a new value}
This is a new value

A variável existe e tem um valor. Por exemplo,

var=123
echo ${var?"this is not set"}
123

A variável existe, mas está vazia ( "" )

var=
echo ${var?"this is not set"}

O eco gera o valor de var , que não é nada, seguido por sua nova linha usual

Atribuir um valor é assim:

var=123
echo $var
123

declare é usado para atribuir atributos a uma variável (verifique a página man bash para typeset ou declare sob **shell builtin commands** para detalhes.

    
por 11.02.2016 / 05:41

Tags