Estações de trabalho on-line OnWorks Linux e Windows

Logotipo

Hospedagem online grátis para estações de trabalho

<Anterior | Conteúdo | Próxima>

Variáveis ​​e constantes

Porém, há um problema com nosso script. Observe como a string “Relatório de informações do sistema” é repetida? Com nosso pequeno script não é um problema, mas vamos imaginar que nosso script fosse muito longo e tivéssemos várias instâncias dessa string. Se quiséssemos mudar o título para outra coisa, teríamos que mudá-lo em vários lugares, o que poderia ser muito trabalhoso. E se pudéssemos organizar o script de modo que a string apareça apenas uma vez e não várias vezes? Isso tornaria a manutenção futura do script muito mais fácil. Veja como poderíamos fazer isso:



#! / Bin / bash


# Programa para gerar uma página de informações do sistema


title = "Relatório de informações do sistema"


echo "

$ title

$ title

"

#! / Bin / bash


# Programa para gerar uma página de informações do sistema


title = "Relatório de informações do sistema"


echo "

$ title

$ title

"


Criando um variável nomeado título e atribuindo a ele o valor “Relatório de informações do sistema”, podemos aproveitar a expansão dos parâmetros e colocar a string em vários locais.

Então, como criamos uma variável? Simples, nós apenas o usamos. Quando o shell encontra uma variável, ele a cria automaticamente. Isso difere de muitas linguagens de programação em que as variáveis ​​devem ser explicitamente Declarado ou definido antes do uso. O shell é muito frouxo sobre isso, o que pode levar a alguns problemas. Por exemplo, considere este cenário executado na linha de comando:


[me @ linuxbox ~] $ foo = "sim" [me @ linuxbox ~] $ echo $ foo sim

[me @ linuxbox ~] $ echo $ tolo


[me @ linuxbox ~] $

[me @ linuxbox ~] $ foo = "sim" [me @ linuxbox ~] $ echo $ foo sim

[me @ linuxbox ~] $ echo $ tolo


[me @ linuxbox ~] $


Primeiro atribuímos o valor “sim” à variável Fooe, em seguida, exibir seu valor com eco. Em seguida, exibimos o valor do nome da variável digitado incorretamente como “tolo” e obtemos um resultado em branco. Isso ocorre porque o shell felizmente criou a variável enganar quando o encontrou e deu a ele o valor padrão de nada, ou vazio. Com isso, aprendemos que devemos prestar muita atenção à nossa ortografia! Também é importante entender o que realmente aconteceu neste exemplo. De nossa análise anterior de como o shell realiza expansões, sabemos que o comando:



[me @ linuxbox ~] $ echo $ foo

[me @ linuxbox ~] $ echo $ foo


sofre expansão de parâmetros e resulta em:



[me @ linuxbox ~] $ echo sim

[me @ linuxbox ~] $ echo sim


Considerando que o comando:



[me @ linuxbox ~] $ echo $ tolo

[me @ linuxbox ~] $ echo $ tolo


expande-se para:



[me @ linuxbox ~] $ echo

[me @ linuxbox ~] $ echo


A variável vazia se expande para nada! Isso pode causar estragos em comandos que exigem argumentos. Aqui está um exemplo:



[me @ linuxbox ~] $ foo = foo.txt [me @ linuxbox ~] $ foo1 = foo1.txt [me @ linuxbox ~] $ cp $ foo $ tolo

cp: operando do arquivo de destino ausente após `foo.txt '

[me @ linuxbox ~] $ foo = foo.txt [me @ linuxbox ~] $ foo1 = foo1.txt [me @ linuxbox ~] $ cp $ foo $ tolo

cp: operando do arquivo de destino ausente após `foo.txt '


Tente `cp --help 'para mais informações.

Tente `cp --help 'para mais informações.


Atribuímos valores a duas variáveis, Foo e foo1. Em seguida, realizamos um cp, mas soletrar incorretamente o nome do segundo argumento. Após a expansão, o cp comando é enviado apenas um argumento, embora exija dois.

Existem algumas regras sobre nomes de variáveis:

1. Os nomes das variáveis ​​podem consistir em caracteres alfanuméricos (letras e números) e caracteres de sublinhado.

2. O primeiro caractere de um nome de variável deve ser uma letra ou um sublinhado.

3. Espaços e símbolos de pontuação não são permitidos.

A palavra “variável” implica um valor que muda e, em muitas aplicações, as variáveis ​​são usadas dessa forma. No entanto, a variável em nosso aplicativo, título, é usado como um constante. Uma constante é como uma variável, pois tem um nome e contém um valor. A diferença é que o valor de uma constante não muda. Em um aplicativo que realiza cálculos geométricos, podemos definir PI como uma constante, e atribua a ela o valor de 3.1415, em vez de usar o número literalmente em todo o nosso programa. O shell não faz distinção entre variáveis ​​e constantes; eles são principalmente para a conveniência do programador. Uma convenção comum é usar letras maiúsculas para designar constantes e letras minúsculas para variáveis ​​verdadeiras. Modificaremos nosso script para obedecer a esta convenção:



#! / Bin / bash

# Programa para gerar uma página de informações do sistema IMERSÃO DE INGLÊS= "Relatório de informações do sistema Para $ HOSTNAME"echo"

$IMERSÃO DE INGLÊS

$IMERSÃO DE INGLÊS

"

#! / Bin / bash

# Programa para gerar uma página de informações do sistema IMERSÃO DE INGLÊS= "Relatório de informações do sistema Para $ HOSTNAME"echo"

$IMERSÃO DE INGLÊS

$IMERSÃO DE INGLÊS

"


Também aproveitamos a oportunidade para aprimorar nosso título adicionando o valor da variável shell

NOME DE ANFITRIÃO. Este é o nome de rede da máquina.


imagem

Observação: O shell realmente fornece uma maneira de impor a imutabilidade das constantes, por meio do uso do declarar comando embutido com o -r opção (somente leitura). Se tivéssemos atribuído IMERSÃO DE INGLÊS deste jeito:


declare -r TITLE = "Título da página"


o shell impediria qualquer atribuição subsequente a IMERSÃO DE INGLÊS. Este recurso raramente é usado, mas existe para scripts muito formais.


imagem


 

Top OS Cloud Computing na OnWorks: