2 votes

Comment imprimer une valeur obtenue à partir d'une commande ou une valeur de repli 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 faire comme ceci dans une phrase en ligne en utilisant un 0 comme valeur de repli, comme ceci :

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

o

echo "$($passed || 0)"

Il est possible d'obtenir une valeur de repli si passed reçoit une valeur vide ?

8voto

John O'Brien Points 21

Utilisez expansion des paramètres :

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

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X