O que significam -s e [[]] em uma condição if no bash?

if [[ -s log.txt ]];

O que significa -s? Eu sei que -z significa string de tamanho zero. Não consigo encontrar nenhuma documentação sobre -s.

O que significa [] ou [[]], ao escrever uma condição if. Usei if sem [] ou [[]] e funcionou bem.

Resposta

O -s teste retorna verdadeiro se

[…] se o arquivo existe e tem um tamanho maior que zero

Isso está documentado no manual bash e também no manual para o utilitário test (o teste também pode ser escrito if test -s file; then).

Para [ ... ] e [[ ... ]], consulte: Bash – Se confusão de sintaxe

Resposta

-s ARQUIVO: – O ARQUIVO existe e tem um tamanho maior que zero.

A parte […] permite testar uma condição usando operadores. Pense nisso como uma declaração if. Em seu exemplo, você está usando o operador -s, que testa se o arquivo referenciado não está vazio.

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *