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

1

if [[ -s log.txt ]];

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

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

    
por Tarun Maganti 31.03.2017 / 12:15

2 respostas

8

O teste -s retorna verdadeiro se

[...] if file exists and has a size greater than zero

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

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

    
por 31.03.2017 / 12:19
1

-s FILE: - FILE existe e tem um tamanho maior que zero.

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

    
por 31.03.2017 / 12:32