variável = $ (comando)
variável = $ (comando [opção…] argumentos1 argumentos2…)
variável = $ (/caminho/para/comando)
OU
variável = 'comando'
variável = 'comando [opção…] argumentos1 argumentos2…'
variável = '/caminho/para/comando'
*** Nota: Não use nenhum espaço antes e depois do sinal igual ao usar os comandos acima.
Saída de comando único para uma variável
Os comandos bash podem ser usados sem nenhuma opção e argumento para os comandos em que essas peças são opcionais. Os dois exemplos a seguir mostram os usos da substituição simples de comando.
Exemplo 1:
tocar 'data' O comando é usado para mostrar a data e a hora atuais. O script a seguir armazenará a saída de 'data' comando em $data atual variável usando a substituição de comando.
$ current_date = $ (data)
$ echo "Hoje é $ current_date"
Saída:
Exemplo#2:
'PWD' Comando mostra o caminho do diretório de trabalho atual. O script a seguir armazena a saída de 'PWD' comando na variável, $ current_dir e o valor dessa variável é impresso usando 'eco' comando.
$ current_dir = 'pwd'
$ echo "O diretório atual é: $ current_dir"
Saída:
Comando com opção e argumento
A opção e o argumento são obrigatórios para alguns comandos bash. Os exemplos a seguir mostram como você pode armazenar a saída do comando com opção e argumento em uma variável.
Exemplo#3:
Tocar 'Banheiro' O comando é usado para contar o número total de linhas, palavras e caracteres de qualquer arquivo. Este comando usa -c, -w e -l como opção e nome do arquivo como argumento para gerar a saída. Crie um arquivo de texto chamado frutas.TXT com os seguintes dados para testar o próximo script.
frutas.TXT
Execute os seguintes comandos para contar e armazenar o número total de palavras no frutas.TXT Arquive em uma variável, $ count_words e imprima o valor usando 'eco' comando.
$ count_words = 'wc -w frutas.TXT'
$ eco "Palavras totais em frutas.txt é $ count_words "
Saída:
Exemplo#4:
'corte' é outro comando bash que usa a opção e argumento para gerar a saída. Crie um arquivo de texto chamado Dia da semana.TXT com nomes de sete semanas para executar o próximo script.
Dia da semana.TXT
Segunda-feiraCrie um arquivo bash chamado CMDSub1.sh com o seguinte script. Neste script, enquanto O loop é usado para ler o conteúdo de Dia da semana.TXT arquivo de arquivo por linha e leia os três primeiros caracteres de cada linha usando 'corte' comando. Após o corte, o valor da string é armazenado na variável $ dia. Em seguida, se a declaração for usada para verificar o valor de $ dia é 'Sol' ou não. A saída vai imprimir 'Domingo é o feriado'Quando se a condição for verdadeira, caso contrário, ele imprimirá o valor de $ dia.
CMDSub1.sh
#!/BIN/BASH
arquivo de arquivo = 'dia da semana.TXT'
enquanto lida linha; fazer
DIA = 'ECHO $ LINE | Corte -C 1-3 '
Se [$ dia == "Sun"]
então
eco "domingo é o feriado"
outro
eco $ dia
fi
feito<$filename
Execute o script.
$ CAT DIA DA SEMANA.TXT
$ Bash CMDSub1.sh
Saída:
Usando a substituição de comando em loop
Você pode armazenar a saída de substituição de comando em qualquer variável de loop que seja mostrada no próximo exemplo.
Exemplo#5:
Crie um arquivo chamado cmdsub2.sh Com o seguinte código. Aqui, 'LS -D */'O comando é usado para recuperar toda a lista de diretórios do diretório atual. Para o loop é usado aqui para ler cada diretório da saída e armazená -lo na variável $ Dirname que é impresso mais tarde.
cmdsub2.sh
#!/BIN/BASH
Para o Dirname em $ (ls -d */)
fazer
eco "$ dirname"
feito
Execute o script.
$ Bash CMDSub2.sh
Saída:
Usando comandos aninhados
Como você pode usar vários comandos usando Pipe (|) é mostrado no exemplo anterior. Mas você pode usar comandos aninhados na substituição de comando, onde a saída do primeiro comando depende da saída do segundo comando e funciona oposto ao comando do tubo (|).
Sintaxe do comando aninhado:
var = 'comando1 \' comando \ "
Exemplo#6:
Dois comandos, 'eco' e 'Quem'são usados neste exemplo como o comando aninhado. Aqui, 'Quem'Comando executará primeiro que imprimirá as informações do usuário do usuário atualmente conectado. A saída do 'Quem'Comando será executado por'eco'Comando e a saída de'eco'vai armazenar na variável $ var. Aqui, a saída de 'eco'Comando depende da saída de'QuemComando.
$ var = 'eco \' quem \ "
$ echo $ var
Saída:
Usando o caminho do comando
Se você conhece o caminho do comando, poderá executar o comando especificando o caminho do comando ao usar a substituição de comando. O exemplo a seguir mostra o uso do caminho do comando.
Exemplo#7:
'Quem sou eu' O comando mostra o nome de usuário do usuário atualmente conectado. Por padrão, este comando é armazenado em /usr/bin/ pasta. Execute o seguinte script para correr 'Quem sou eu' comando usando o caminho e armazenar na variável, $ saída, e imprimir o valor de $ saída.
$ output = $ (/usr/bin/whoami)
$ ECHO $ outida
Saída:
Usando o argumento da linha de comando
Você pode usar o argumento da linha de comando com o comando como argumento na substituição do comando.
Exemplo#8:
Crie um arquivo bash chamado CMDSub3.sh com o seguinte script. 'nome de base'O comando é usado aqui para recuperar o nome do arquivo do 2nd argumento da linha de comando e armazenado na variável, $ nome do arquivo. Nós sabemos o 1st O argumento da linha de comando é o nome do script de execução, que é indicado por $ 0.
#!/BIN/BASH
nome do arquivo = 'nome de base $ 1'
eco "O nome do arquivo é $ FileName."
Execute o script com o seguinte valor de argumento.
$ Bash CMDSub3.SH Desktop/Temp/Hello.TXT
Aqui, o nome da base do caminho, Desktop/temp/Olá.TXT é 'olá.TXT'. Então, o valor do $ nome do arquivo vai ser olá.TXT.
Saída:
Vários usos das substituições de comando são mostrados neste tutorial. Se você precisar trabalhar com vários comandos ou depender comandos e armazenar o resultado temporário para realizar outras tarefas posteriormente, poderá usar esse recurso em seu script para obter a saída.
Mais informações no vídeo: