Substituição variável aninhada e variáveis de bash predefinidas no Linux - Parte 11
- 2248
- 467
- Howard Fritsch
Os dois últimos artigo sobre Bash Shell, onde discutimos variáveis em detalhes foram muito apreciados entre nossos leitores. Nós como Tecmint-Team estão muito interessados em fornecer a você tópicos mais recentes, atualizados e relevantes cobertos em detalhes. Além disso, sempre tentamos tocar grandes perspectivas dos tópicos correspondentes.
Variáveis aninhadas no script de conchaAqui está o último artigo sobre variáveis Linux, onde veremos substituição de variáveis e variáveis definidas no shell antes de fechar este tópico.
Bash realiza substituição variável antes que o comando seja realmente executado. O Linux Bash Shell pesquisa todo o sinal '$' antes de executar o comando e substituí -lo pelo valor da variável. O processo de substituição variável de bash é realizado apenas uma vez. E se tivéssemos aninhados variáveis?
Observação: Por variável aninhada, queremos dizer, variável declarada dentro da variável. Vamos ver o cenário acima no exemplo abaixo.
Declare uma variável que é somente leitura e executável como abaixo.
[Email protegido]: ~ $ declarar -rx linux_best_website = "www.Tecmint.com "
Verifique o valor da variável armazenada.
[Email protegido]: ~ $ printf "%s" "$ linux_best_website" www.Tecmint.com
Agora declare outra variável que novamente é somente leitura e executável.
[Email Protected]: ~ $ declarar -rx linux_website = "linux_best_website"
Agora a situação é que definimos duas variáveis.
'Linux_best_website', cujo valor é "www.Tecmint.com ”
e 'linux_website', cujo valor é "linux_best_website"
Qual seria o resultado, se executamos o comando abaixo de uma linha?
[Email protegido]: ~ $ printf "%s" "$ linux_website"
Deve primeiro substituir a variável '$ Linux_website', com valor “Linux_best_website" e então "$ Linux_best_website”É novamente uma variável cujo valor é“www.Tecmint.com”. Portanto, a saída final da execução do comando abaixo deve ser.
[Email protegido]: ~ $ printf "%s" "$ linux_website" www.Tecmint.com
Mas, infelizmente, essa não é a situação, a saída que estamos obtendo é Linux_best_website.
Razão? Sim! Bash substitua o valor da variável apenas uma vez. E quanto aos scripts e programas complexos em que precisamos substituir variáveis com frequência, bem como precisa substituir a variável mais de uma vez?
Aqui vem o comando 'aval'que executa um trabalho adicional de substituição variável mais de uma vez em um script. Aqui está um exemplo para tornar o todo funcionando tão claro quanto o vidro.
Declarar uma variável x, cujo valor é 10.
[Email Protected]: ~/Desktop $ declarar x = 10
Verifique o valor da variável x, Acabamos de definir.
[Email Protected]: ~/Desktop $ echo $ yx x10
Declarar uma variável y, cujo valor é x.
[Email Protected]: ~/Desktop $ declarar y = x
Verifique o valor da variável y, Acabamos de definir.
[Email Protected]: ~/Desktop $ echo $ y x
Aqui está o problema de Bash Substituição variável única, que não realiza uma rodada extra de substituição variável. Nós estamos usando 'aval'Comando para consertar isso.
[Email Protected]: ~/Desktop $ aval. y = $ x
Agora verifique o valor da variável 'y'.
[Email Protected]: ~/Desktop $ echo $ y 10
Hurra! O problema foi corrigido e 'aval'Comando venceu a corrida :)
Para não mencionar, 'aval'O comando é muito útil em grandes programas de script e é uma ferramenta muito útil.
O último, mas não a menor, parte deste post são variáveis predefinidas bash. Não! Não entre em pânico vendo esta lista. Você nunca precisa se lembrar de toda a lista antes de começar a escrever scripts, exceto alguns. Como parte do processo de aprendizagem, estamos apresentando a lista de variáveis predefinidas da Bash.
Não. | Variável de bash | RESULTADO |
1 | auto_resume | Conclusão do comando de processo para os empregos parados. |
2 | Bash | Caminho da concha. |
3 | Bash_env | Mostra o nome do arquivo de perfil |
4 | Bash_version | Mostra a versão do Bash |
5 | Bash_versinfo | Mostra informações detalhadas da versão. |
6 | Bash_versinfo [0] | O número principal da versão (o lançamento). |
7 | Bash_versinfo [1] | O número da versão menor (a versão). |
8 | Bash_versinfo [2] | O nível do patch. |
9 | Bash_versinfo [3] | A versão de construção. |
10 | Bash_versinfo [4] | O status de liberação (por exemplo, beta1). |
11 | Bash_versinfo [5] | O valor do machtype . |
12 | CDPath | Lista de diretórios separados por cólon. |
13 | Colunas | Número de caracteres por linha na saída padrão. |
14 | Euid | ID do usuário do usuário atual. |
15 | Fcedit | O editor de texto padrão para o comando fc. |
16 | Funcname | O nome da diversão |
17 | Grupos | Grupos dos quais o usuário é um membro. |
18 | Histfile | O arquivo que contém o histórico de comando. |
19 | LAR | O nome do seu diretório doméstico. |
20 | Linhas | Número de linhas horizontais na saída padrão. |
21 | CORRESPONDÊNCIA | Nome de um arquivo para verificar se há correio recebido |
22 | Ostype | Nome do sistema operacional. |
23 | Oldpwd | O diretório de trabalho anterior |
24 | PWD | O diretório de trabalho atual |
25 | ALEATÓRIO | Imprime um número aleatório |
26 | CONCHA | A concha preferida de usar |
27 | TimeFormat | O formato para o comando do tempo. |
28 | Uid | O ID do usuário atual |
Há uma enorme lista de variáveis de bash predefinidas. Tentamos produzir uma lista dos mais frequentemente usados.
É tudo por agora. Estarei aqui novamente com outro artigo interessante. Até então fique atento e conectado a Tecmint. Não se esqueça de nos fornecer seu valioso feedback na seção de comentários abaixo.
- « Abordagem orientada a objetos da programação e encapsulamento Java - Parte 5
- Aprenda dicas e truques úteis do editor 'VI/Vim' para aprimorar suas habilidades - Parte 1 »