Executando diversos comandos - Linux Shell Essentials - Parte 5
Veja nesta continuação como executar diversos comandos em uma mesma linha.
Bem vindo a mais um artigo da série Linux Shell Essentilas, onde tratamos os conhecimentos mais elementares para trabalhar com a Shell do Linux. No último artigo nós aprendemos que todo comando retorna um valor que é armazenado em $?. Agora vamos aprender a executar diversos comandos em uma mesma linha com &&, || e substituição de comandos.
Executando diversos comando na mesma linha:
Existem várias maneiras de executar mais de um comando na mesma linha. Existem as maneiras condicionais e não condicionais.
· ponto-e-vírgula (;): quando colocamos diversos comandos em uma linha separados por ponto e vírgula eles são executados em sequência:
$ echo "cria diversos arquivos: ";touch file1 file2 file3; ls file*
cria diversos arquivos:
file1 file2 file3 file4
$
· or curto circuíto ( || ): se o o primeiro comando não é executado com sucesso, então o shell tenta executar comando seguinte:
$ rm -f /etc/cron.d || echo "ATENCAO: Nao pude remover arquivo. Erro $?"
rm: impos��vel remover `/etc/cron.d': Permiss��o negada
ATENCAO: Nao pude remover arquivo. Erro 1
$ rm -f /etc/cron.d || mail x8ge -s "Nao pude remover arquivo. Erro $?"
$ ls $HOME || echo "Nao foi possivel ler os arquivos: $?"
file1 file2 file3 file4
$
· and curto circuíto ( && ): se o primeiro comando é executado com sucesso, então o shell tenta executar o segundo comando.
$ ls $HOME && echo "arquivos lidos em $HOME"
file1 file2 file3 file4
arquivos lidos em /home/x8ge
$ ls ~root && echo "arquivos lidos em ~root"
ls: /root: Permiss��o negada
$
· Substituição de Comandos: Você pode atribuir um comando a uma variável e utilizar esta variável em linhas de comando e scripts:
$ ESTRUTURA=`mkdir -p $HOME/myapp/bin $HOME/myapp/conf $HOME/myapp/help`
$ echo "Criando estrutura de arquivos"; $ESTRUTURA || echo "WARNING: NAO FOI POSS'IVEL CRIAR ESTRUTURA DE DIRETORIOS PARA MYAPP $?"; ls -R myapp/
Criando estrutura de arquivos
myapp/:
bin conf help
myapp/bin:
myapp/conf:
myapp/help:
$
Neste exemplo criamos uma variável, ESTRUTURA, que na verdade contém o comando `mkdir -p $HOME/myapp/bin $HOME/myapp/help $HOME/myapp/conf`. A substituição de comandos também pode ser utilizada para gerar argumentos para outro comando:
$ wc -c $(ls *.pl)
117 pingador.pl
160 usa_ponto.pl
277 total
$
Neste exemplo você pode ver o comando pode ser executado dentro de $( ), em $( ls *.pl ). Da mesma maneira que fosse uma variável, mas o valor não é atribuído a nenhuma variável real.
Agora vou me despedindo. No próximo artigo vamos aprender sobre o histórico do shell e suas variáveis de ambiente. Até a próxima.
Ticursos.net - Thiago Glauco
Analista de Sistemas, administrador de redes, Desenvolvedor. Certificação: ITIL Linux+ & LPI Gestor de segurança da informação site: www.ticursos.net. Cursos de C, Perl e Linux



