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.