Como imprimo um valor obtido de um comando ou um valor de fallback se o comando retornar vazio?

2

Eu tenho o seguinte script

passed='sed -n 's/.* \([0-9]*\) passed.*//p' evaluation.output'

echo "Passed: $passed"

Minha ideia é fazer isso em uma sentença in-line usando 0 como valor de fallback como este:

passed='sed -n 's/.* \([0-9]*\) passed.*//p' evaluation.output || 0'

ou

echo "$($passed || 0)"

É possível obter um valor de fallback se a variável passed obtiver um valor vazio?

    
por Gonzalo Pincheira Arancibia 05.06.2017 / 17:54

1 resposta

8

Use a expansão de parâmetros :

passed='sed -n 's/.* \([0-9]*\) passed.*//p' evaluation.output'
echo "Passed: ${passed:-0}"
    
por choroba 05.06.2017 / 18:00