Como salvar a saída do comando como variável no Bash? Inteligência de dados PlatoBlockchain. Pesquisa vertical. Ai.

Como salvar a saída do comando como variável no Bash?

Introdução

Em scripts bash, atribuir a saída de um comando a variáveis ​​pode ser conveniente armazenando as saídas dos comandos e usando-as posteriormente.

Neste pequeno guia, veremos como você pode armazenar a saída de um comando como uma variável no Bash.

O básico para configurar variáveis

Salvar a saída de um comando como uma variável é obtido por meio de substituição de comando. A substituição de comando é um wrapper que executa o comando em um ambiente subshell, e substitui o comando encapsulado pela saída padrão do ambiente no qual o comando foi executado. Esta saída pode ser referenciada posteriormente, se conectada a uma variável de referência!

A substituição de comandos pode ser feita através de acentos graves ou do cifrão entre parênteses:

`command`

$(command)

Há um debate sobre se `comando` (retrocessos) ou $ (comando) (sinal de dólar e parênteses) deve ser usado como a “melhor prática”. $(command) funciona bem no aninhamento e melhora a legibilidade em alguns casos, mas você pode usar qualquer uma das sintaxes nos exemplos seguintes.

Dito isto - atribuir a saída de um comando a uma variável no Bash é tão fácil quanto:

VARIABLE=$(command)
echo "${VARIABLE}"

Corrida ${variable} é conhecido como expansão de parâmetro, e é usado para avaliar e buscar o valor associado a uma variável de referência.

Vamos agora dar uma olhada no exemplo simples de configuração de uma variável para um comando para alterar a cor de saída:

#!/bin/bash
GREEN=$(tput setaf 2)
echo "${GREEN}Please"

ORANGE=$(tput setaf 9)
echo "${ORANGE}Visit"

echo "${GREEN}Paris"

No snippet, usamos o tput comando e atribuído o valor retornado desses comandos para imprimir texto colorido. o setaf altera a cor do primeiro plano e 3 (verde) e 9 (laranja) são códigos de cores.

Agora vamos passar para outro exemplo que contém várias condições para configurar variáveis ​​para diferentes comandos:

#!/bin/bash
PERSON=$(whoami)
echo -e "Hey ${PERSON}! I am Charlien"

DETAILS=$(uname -a)
echo -e "You're running this script on:n${DETAILS}n"

DATES=$(date)
echo -e "The script is being run on:n${DATES}n"

CREATE=$(touch $(date +"%d%m%Y").txt)
echo -e "A text file logging this run is created.${CREATE}n"

LOCATION=$(ls 
  -l *txt)
echo -e "Saved text file at: ${LOCATION}"

No roteiro acima, o whoami O comando retorna o nome de usuário do usuário atual. o uname -a retorna as informações do sistema e o date retorna a hora e a data atuais.

Observação: Podemos encadear a atribuição de variáveis ​​adicionando vários comandos em uma única chamada aninhada. o CREATE variável contém a saída do touch comando, que por sua vez cria um arquivo e define o nome do arquivo para a saída do date +"%d%m%Y comando.

Confira nosso guia prático e prático para aprender Git, com práticas recomendadas, padrões aceitos pelo setor e folha de dicas incluída. Pare de pesquisar comandos Git no Google e realmente aprender -lo!

Por fim, adicionamos um multiline conceito de atribuição de variável de comando adicionando uma barra invertida () Entre o ls comando -l sinalizador para exibir apenas arquivos de texto usando *.txt. A barra invertida é um caractere de escape que informa ao shell para não interpretar o próximo caractere.

No echo comando, adicionamos o -e sinalizador para usar o caractere especial, ou seja, n (nova linha), para imprimir a saída na nova linha.

Obtemos o seguinte resultado após a execução do script:

$ ./variable.sh

Conclusão

Neste pequeno guia, vimos como você pode definir a saída de um comando para uma variável no Bash. Demos uma olhada na diferença entre as sintaxes para substituição de comando, observando as melhorias de legibilidade de $(command) sobre a substituição baseada em backtick. Em seguida, analisamos vários exemplos de atribuição simples e atribuição de saída encadeada/aninhada.

Carimbo de hora:

Mais de Abuso de pilha