Ligando comandos no shell Bash – Linux
Ligando comandos no shell Bash
É possível criar uma sequência de comandos a serem executados no shell Bash por meio do uso de operadores específicos.
Os operadores utilizados para conectar comandos no terminal do Linux são ;, &, &&, | e ||. Vamos estudar cada um deles na sequência:
Operador ;
Separa comandos que serão executados sequencialmente. Os comandos posteriores são executados assim que os comandos anteriores finalizarem sua execução
Exemplo – Mudar para o diretório raiz e listar seu conteúdo mostrando as permissões e a data e hora atuais no final:
cd /; ls -l; date
Operador &
Permite executar o comando em segundo plano em um subshell. Desta forma, o shell fica livre para que outros comandos sejam executados, enquanto o comando especificado roda em background.
Exemplo – Se o diretório /imagens não existir, criá-lo:
[ ! -d /imagens ] && mkdir /imagens
Exemplo 2: Copiar todos os arquivos presentes no diretório /usr e seus subdiretórios que possuam a extensão .txt para o diretório /home/fabio/Documentos, liberando o terminal imediatamente, enquanto os arquivos são copiados:
find /usr/ -name "*.txt" -exec cp {} /home/fabio/Documentos \; &
Operador &&
Separa comandos que serão executados sequencialmente. Os comandos posteriores somente são executados se os comandos anteriores forem executados com sucesso. Ou seja, um comando somente será executado se seu antecessor tiver retornado status de saída igual a zero.
Exemplo – Atualizar os pacotes instalados no sistema após efetuar atualização da lista de pacotes dos repositórios:
apt-get update && apt-get upgrade
Operador |
Permite unir a saída padrão de um comando à entrada padrão de outro comando, ou seja, redireciona a saída de um comando para a entrada de outro.
Exemplo – Filtrar todos os processos em execução no sistema que tenham relação com o shell bash:
ps -ef | grep bash
Operador ||
Os comandos posteriores são executados somente se os comandos anteriores forem executados com falha. Ou seja, um comando somente será executado se seu antecessor tiver retornado status de saída igual diferente de zero.
Exemplo – Se o diretório /arquivos não existir no sistema, criá-lo; caso contrário, não efetuar essa operação:
ls /arquivos || mkdir /arquivos
Combinando os operadores
Exemplo – Se o diretório /docs não existir no sistema, criá-lo e copiar o arquivo /etc/passwd para dentro dele; também exibir seu conteúdo para mostrar que o diretório foi criado e o arquivo copiado de acordo:
[ ! -d /docs ] || mkdir /docs && cp /etc/passwd /docs; ls /docs
É isso aí! Falaremos mais sobre o shell Bash do Linux no próximo tutorial. Até!
Escreva um comentário