Skip to content

Latest commit

 

History

History
186 lines (122 loc) · 3.89 KB

009-bash-conditional-expressions.md

File metadata and controls

186 lines (122 loc) · 3.89 KB

Expressões Condicionais Bash

Na ciência da computação, declarações condicionais, expressões condicionais e construções condicionais são recursos de uma linguagem de programação, que executam diferentes computações ou ações dependendo se uma condição booleana especificada pelo programador é avaliada como verdadeira ou falsa.

No Bash, as expressões condicionais são usadas pelo comando composto [[ e os comandos internos [ para testar os atributos do arquivo e realizar comparações aritméticas e de strings.

Aqui está uma lista das expressões condicionais Bash mais populares. Você não precisa memorizá-los de cor. Você pode simplesmente consultar esta lista sempre que precisar!

Expressões de arquivo

  • Verdadeiro se o arquivo existir.
[[ -a ${arquivo}]]
  • Verdadeiro se o arquivo existir e for um arquivo especial de bloco.
[[ -b ${arquivo}]]
  • Verdadeiro se o arquivo existir e for um arquivo especial de caracteres.
[[ -c ${arquivo}]]
  • Verdadeiro se o arquivo existir e for um diretório.
[[ -d ${arquivo}]]
  • Verdadeiro se o arquivo existir.
[[ -e ${arquivo}]]
  • Verdadeiro se o arquivo existir e for um arquivo normal.
[[ -f ${arquivo}]]
  • Verdadeiro se o arquivo existir e for um link simbólico.
[[ -h ${arquivo}]]
  • Verdadeiro se o arquivo existir e for legível.
[[ -r ${arquivo}]]
  • Verdadeiro se o arquivo existir e tiver um tamanho maior que zero.
[[ -s ${arquivo}]]
  • Verdadeiro se o arquivo existir e for gravável.
[[ -w ${arquivo}]]
  • Verdadeiro se o arquivo existir e for executável.
[[ -x ${arquivo}]]
  • Verdadeiro se o arquivo existir e for um link simbólico.
[[ -L ${arquivo}]]

Expressões de string

  • True se a variável shell varname estiver definida (foi atribuído um valor).
[[ -v ${varname}]]
  • True se o comprimento da string for zero.
[[ -z ${string}]]
  • True se o comprimento da string for diferente de zero.
[[ -n ${string}]]
  • True se as strings forem iguais. = deve ser usado com o comando test para conformidade com POSIX. Quando usado com o comando [[, ele executa a correspondência de padrões conforme descrito acima (Comandos compostos).
[[ ${string1} == ${string2}]]
  • True se as strings não forem iguais.
[[ ${string1} != ${string2} ]]
  • Verdadeiro se string1 classificar antes de string2 lexicograficamente.
[[ ${string1} < ${string2} ]]
  • Verdadeiro se string1 classificar após string2 lexicograficamente.
[[ ${string1} > ${string2}]]

Operadores aritméticos

  • Retorna verdadeiro se os números forem iguais
[[ ${arg1} -eq ${arg2} ]]
  • Retorna verdadeiro se os números não forem iguais
[[ ${arg1} -ne ${arg2} ]]
  • Retorna verdadeiro se arg1 for menor que arg2
[[ ${arg1} -lt ${arg2} ]]
  • Retorna verdadeiro se arg1 for menor ou igual arg2
[[ ${arg1} -le ${arg2} ]]
  • Retorna verdadeiro se arg1 for maior que arg2
[[ ${arg1} -gt ${arg2} ]]
  • Retorna verdadeiro se arg1 for maior ou igual arg2
[[ ${arg1} -ge ${arg2} ]]

Como uma nota lateral, arg1 e arg2 podem ser números inteiros positivos ou negativos.

Assim como em outras linguagens de programação, você pode usar as condições AND e OR:

[[ test_case_1 ]] && [[ test_case_2 ]] # E
[[ test_case_1 ]] || [[ test_case_2 ]] # Ou

Operadores de status de saída

  • Retorna true se o comando foi bem sucedido sem nenhum erro
[[$? -eq 0 ]]
  • Retorna true se o comando não foi bem sucedido ou teve erros
[[$? -gt 0 ]]