web-dev-qa-db-fra.com

Comment imprimer une valeur obtenue à partir d'une commande ou une valeur de secours si la commande retourne vide?

J'ai le script suivant

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

echo "Passed: $passed"

Mon idée est de le faire dans une phrase en ligne en utilisant un 0 comme valeur de secours comme ceci:

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

ou

echo "$($passed || 0)"

Il est possible d'obtenir une valeur de secours si la variable passed obtient une valeur vide?

Utilisez expansion des paramètres :

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