Imprima o resultado da condição diretamente no bash sem usar se

2

Digamos que eu tenha este código simples:

echo "Are there any arguments?"
if [ $# -eq 0 ]; then
    echo "false"
else
    echo "true"
fi

Como você pode ver, seria melhor apenas ter a oportunidade de imprimir diretamente o resultado da condição, mas não sei como fazer isso.

Seria algo como:

echo "$([ $# -eq 0 ])"

Mas não funciona assim. Podemos fazer isso sem if ?

    
por ctomek 15.10.2015 / 21:34

2 respostas

4

Você pode usar a lista operadores de controle && e || :

[[ $# -eq 0 ]] && { echo false; } || { echo true; }

O grupo { } uma lista de comandos, você não precisa deles apenas para um único comando, mas eles geralmente tornam essas construções mais legíveis.

    
por 15.10.2015 / 21:46
2

Você pode usar $? que mantém o código de saída do último comando executado:

echo "Are there any arguments?"
[ $# -eq 0 ]
echo $?
    
por 15.10.2015 / 21:46

Tags