1
resposta

Linux: Scripts: Quando utilizar ou não colchetes?

Olá amigo estudante.
A diferença entre usar ou não colchetes ([ ... ]) em condições dentro de scripts shell está relacionada ao tipo de comando que você está testando.
Vamos explicar claramente:

if ping -c 1 8.8.8.8 > /dev/null; then
    ...
fi

Aqui não é necessário colchetes porque:

  • O if está testando o código de saída do comando ping.
  • O comando ping retorna 0 se tiver sucesso, ou diferente de 0 se falhar.
  • O if em shell simplesmente verifica se o comando foi bem-sucedido (ou seja, retorno 0).
    Portanto, funciona assim:
if COMANDO; then
    # se COMANDO retornar 0 (sucesso), entra aqui
fi

Usa-se quando você quer fazer testes de comparação, por exemplo:

if [ "$nome" = "João" ]; then
    echo "Olá, João"
fi

Ou:

if [ -f /etc/passwd ]; then
    echo "Arquivo existe"
fi

Nesse caso, os colchetes são um comando chamado test. Exemplo:

if test "$nome" = "João"; then ...

é o mesmo que:

if [ "$nome" = "João" ]; then ...

Então, quando usar colchetes?

SituaçãoSintaxe recomendada
Verificar sucesso de um comandoif comando; then ...
Comparar strings, números, arquivos etc.if [ condição ]; then ... ou if [[ condição ]]; then ...
  • Use [[ ... ]] (colchetes duplos) em Bash para expressões mais robustas (ex: regex).
  • O [[ ... ]] é mais moderno e seguro para strings (ex: não precisa escapar > ou usar aspas sempre).

Exemplos:

# Testando comando
if ping -c 1 8.8.8.8 > /dev/null; then
    echo "Conectado"
fi
# Testando variável
if [ "$usuario" = "admin" ]; then
    echo "Bem-vindo, admin"
fi

Qualquer duvida comente ai.
Bons estudos.
Até...
:)

Garanta sua matrícula hoje e ganhe + 2 meses grátis

Continue sua jornada tech com ainda mais tempo para aprender e evoluir

Quero aproveitar agora
1 resposta

Oi, Ronaldo! Como vai?

Agradeço por compartilhar.

Gostei da sua explicação sobre o uso de colchetes no Shell Script, ficou bem clara a distinção entre testar o retorno de um comando e realizar comparações. Sua forma de exemplificar com ping e variáveis ajuda bastante quem está começando a entender o comportamento do if.

Continue compartilhando suas observações, isso ajuda muito outros colegas.

Conteúdos relacionados
Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!