O agrupamento de comandos

Novembro 2016

Introdução


As chaves e os parênteses permitem o agrupamento de comandos.
Com as chaves, os comandos são executáveis pelo shell corrente, enquanto que com os parênteses eles são executados por um só sub-shell, chamado também shell filho (fork).

Sintaxe

  • Execução pelo shell corrente
    • {comando ; comando ;comando;}
  • Execução por um sub-shell
    • (comando; comando; comando;...)

Notas :
  • Um separador ";" (ponto e vírgula ) é necessário diante da aspa que fecha se esta se encontra na mesma linha que o último comando. Isto não acontece para os parênteses.
  • O separador do comando pode ser o "Salto de linha" (LF para Line Feed)
  • O código retorno de um bloco de comando é aquele do último comando executado.

Utilização


O agrupamento de comandos serve principalmente para :
  • Redirecionar um conjunto de comandos para (ou desde) um mesmo arquivo
  • Executar um conjunto de comandos em plano de fundo
  • Condicionar a execução de um conjunto de comandos

Exemplo


Eis um exemplo que eu espero ajudará melhor cernir o emprego das chaves e dos parênteses :
#! /bin/bash  

echo -e "#############################"  
echo -e "# Utilização das chaves #"  
echo -e "#############################"  

echo -e "\nDiretório corrente : \c"  
pwd  
echo -e "Inicialização da variável \"v\" :\nv=\"abc\""  
v="abc"  
echo -e "\nInício do ambiente com chaves...\n"  
{  
echo -e "Reafetar a variável \"v\" :\nv=\"123\""  
v="123"  
echo -e "\nAfixagel da variável \"v\" : \c"  
echo -e "$v"  
echo -e "\nTorca de diretório: "  
echo -e "cd /tmp"  
cd /tmp  
echo -e "\nDiretório corrente : \c"  
pwd  
}  
echo -e "\nFim do ambiente com...\n"  

echo -e "\nDiretório corrente: \c"  
pwd  
echo -e "\nAfixagel da variável \"v\" : \c"  
echo -e "$v"  
echo  

unset v  
cd $HOME  

echo -e "pressiona uma tecla para continuar..."  
read tecla  

echo -e "###############################"  
echo -e "# Utilização dos parênteses #"  
echo -e "###############################"  

echo -e "\nDiretório corrente : \c"  
pwd  
echo -e "Inicialização da variável \"v\" :\nv=\"abc\""  
v="abc"  
echo -e "\nInicio do ambiente com parênteses...\n"  
(  
echo -e "Reafetar a variável \"v\" :\nv=\"123\""  
v="123"  
echo -e "\nAfixagem da  variável \"v\" : \c"  
echo -e "$v"  
echo -e "\nTroca de diretório: "  
echo -e "cd /tmp"  
cd /tmp  
echo -e "\nDiretório corrente: \c"  
pwd  
)  
echo -e "\nFim do ambiente com parênteses...\n"  

echo -e "\nDiretório corrente: \c"  
pwd  
echo -e "\nAfixagem da variável \"v\" : \c"  
echo -e "$v"  
echo  
exit



Tradução feita por Ana Spadari

Veja também :
Este documento, intitulado « O agrupamento de comandos »a partir de CCM (br.ccm.net) está disponibilizado sob a licença Creative Commons. Você pode copiar, modificar cópias desta página, nas condições estipuladas pela licença, como esta nota aparece claramente.