Diferentes Exemplos de Subshell
As diferentes formas de executar o script no subshell são mostradas nesta parte do tutorial.
Exemplo 1: Executar o Subshell Usando Aspas Simples e Duplas
Crie um arquivo Bash com o seguinte script que imprime a data e hora atuais. Em seguida, a variável $strVal é impressa colocando o script subshell entre aspas simples e duplas.
#!/bin/bash
# Imprima o comando `date` no subshell
eco 'Hoje é `data` '
#Define uma variável de string
strVal = 'Subshell Bash'
#Imprima a variável no subshell usando aspas simples
eco 'A saída de aspas simples:' '$(echo $strVal)'
#Imprima a variável no subshell usando aspas duplas
eco 'A saída de aspas duplas:' ' $(echo $strVal) '
A saída a seguir aparece após a execução do script. O script do subshell é impresso como uma string quando é colocado entre aspas simples. O script subshell é executado quando está entre aspas duplas:
Exemplo 2: Pesquisar todos os arquivos da extensão específica usando o subshell
Crie um arquivo Bash com o seguinte script que usa a extensão do arquivo como uma entrada do usuário. Em seguida, o comando “ls” é executado no subshell para pesquisar todos os arquivos dessa extensão específica.
#!/bin/bash
eco -n 'Digite o nome da extensão do arquivo:'
#Pegue o nome da extensão do arquivo que será pesquisado
ler ramal
#Verifique o valor de entrada
se [ [ $ext == '' ] ] ; então
#Imprimir mensagem de erro
eco 'Nenhuma extensão é dada.'
outro
eco 'Nomes de arquivos com $ext extensão:'
#Imprima todos os nomes de arquivos com a extensão fornecida
eco ' $( echo `ls *.$ext` ) '
ser
A seguinte saída aparece após a execução do script com a entrada “txt”. De acordo com a saída, existem três arquivos de texto no local atual:
A seguinte saída aparece após a execução do script com o valor vazio:
Exemplo 3: Executar a Expressão Aritmética no Subshell
Crie um arquivo Bash com o seguinte script onde a variável de mesmo nome é usada no shell principal e no subshell. A operação aritmética é definida no shell principal e no subshell.
#!/bin/bash#Define uma variável de shell pai
número = 10
#Imprime o resultado com base na variável do shell pai
( ( resultado = $número + 5 ) )
eco 'A soma de $número +5= $resultado '
#Cria uma variável de subshell com o mesmo nome do shell pai
( número = vinte ; ( ( resultado = $número + 10 ) ) ; eco 'A soma de $número +5= $resultado ' )
#Imprima o resultado com base na variável do shell pai novamente
eco 'A soma de $número +5= $resultado '
A saída a seguir aparece após a execução do script. A primeira e a última saída mostram o resultado do shell principal. A segunda saída mostra o resultado do subshell. A variável do shell principal não é modificada pela variável do subshell:
Exemplo 4: Execute vários comandos no subshell
Crie um arquivo Bash com o seguinte script que envia a saída do comando “echo” para o comando “sed” que substitui o valor da string correspondente por outra string. A saída do comando “echo” é “JavaScript”. Portanto, esse valor é comparado com “Java” e “JavaScript”. Se uma correspondência for encontrada, as strings correspondentes serão substituídas pela string “Type”.
#!/bin/bash#Define um valor de string
strVal = 'JavaScript'
# Imprime o valor da string original
eco 'Valor da string: $strVal '
#Imprime o valor do subshell
eco -n 'Valor do subshell: '
eco ' $(echo $strVal | sed 's|Java|JavaScript Type|') '
A saída a seguir aparece após a execução do script. De acordo com a saída, a string “Java” é substituída pela string “Type”. A saída do subshell é “JavaScript TypeScript”:
Conclusão
Um ou mais comandos ou scripts podem ser executados usando o subshell sem afetar o shell principal. As finalidades do uso do subshell são explicadas neste tutorial usando vários exemplos. Diferentes tipos de tarefas, como pesquisar os arquivos, calcular a soma dos números, substituir as strings, etc., são executados pelo subshell nos exemplos fornecidos. O conceito de uso do subshell está devidamente demonstrado e os novos usuários do Bash agora poderão usar o subshell depois de ler este tutorial.