Linha de comando

Operadores de linha de comando

Os operadores de linha de comando são caracteres especiais que ajudam a controlar como os comandos funcionam e interagem entre si. Pense neles como a "cola" que conecta comandos diferentes ou indica para onde a informação deve ir. Esses operadores resolvem problemas comuns, como salvar a saída de um comando em um arquivo, executar vários comandos em sequência ou usar a saída de um comando como entrada de outro ao trabalhar no terminal.

Sem operadores, você teria que copiar e colar manualmente as saídas entre comandos ou executar cada comando separadamente, conferindo se ele deu certo antes de executar o próximo. Os operadores deixam seu fluxo de trabalho mais eficiente e ajudam a automatizar tarefas repetitivas.

Operadores de redirecionamento (>, >>)

Os operadores de redirecionamento pegam a saída de um comando e a enviam para um arquivo ou outro destino, em vez de exibi-la na tela. Isso é útil para salvar resultados de comandos ou logs.

Aqui vai um macete para lembrar a diferença:

  • >: 1 seta = manter 1 coisa = manter o meu
  • >>: 2 setas = manter 2 coisas = manter o seu e o meu

Escreva um trecho de texto em um arquivo:

echo "Hello, World!" > hello.txt

Acrescente os últimos 5 commits a um arquivo de changelog:

git log -5 --oneline >> CHANGELOG.md

Operador pipe (|)

O operador pipe pega a saída de um comando e a usa como entrada de outro comando. Isso cria um "pipeline", onde os dados fluem de um comando para o seguinte, como a água em canos conectados.

Selecione os commits que contêm a palavra "fix" na mensagem:

Linux/macOS:

git log --oneline | grep "fix" | sort

PowerShell:

git log --oneline | Select-String "fix" | Sort-Object

Operadores lógicos (&&, ||)

Os operadores lógicos, parecidos com os das linguagens de programação, controlam o fluxo de execução dos comandos com base no sucesso ou na falha dos comandos anteriores.

  • &&: executa o próximo comando apenas se o comando anterior deu certo (código de saída 0).
  • ||: executa o próximo comando apenas se o comando anterior falhou (código de saída diferente de zero).

Adicione os arquivos e faça o commit apenas se a adição der certo:

git add . && git commit -m "Update documentation"

Tente dar um pull; se falhar, faça só um fetch:

git pull origin main || git fetch origin