O que significa -o em um “if”?

1

Sou um iniciante em script de shell e há algo que me parece importante, mas não consigo entender. O que é -o after-eq no código mencionado:

... [ $sorszam -eq 0 ] && min1=$ertek; [ $sorszam -eq 1 -o $sorszam -eq 2 -o $sorszam -eq 3 ] && [ $ertek -lt $min1 ] && min1=$ertek ...

    
por Huntyr94 18.05.2017 / 16:26

3 respostas

2

Como você pode ver em a página do Projeto de Documentação do Linux sobre se , -o representa o operador lógico OR . No seu caso, a variável sorszam é verificada se é igual a 1, 2 ou 3.

    
por 18.05.2017 / 16:34
2

Como você deve saber, [ é equivalente ao comando interno test .

$ help [
[: [ arg... ]
    This is a synonym for the "test" builtin...

então você deve dar uma olhada em help test | grep -- "-o " :

EXPR1 -o EXPR2 True if either expr1 OR expr2 is true.
    
por 18.05.2017 / 16:44
0

-eq é um operador binário aritmético que retorna verdadeiro se ambos os números forem iguais.

-o é um ou, você pode agrupá-lo com -eq para fazer várias comparações em uma linha.

Fonte

    
por 18.05.2017 / 16:36

Tags