如果命令返回空,如何打印从命令获得的值或后备值?

如果命令返回空,如何打印从命令获得的值或后备值?

我有以下脚本

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

echo "Passed: $passed"

我的想法是这样做在一个内联句子中使用0如下作为后备值:

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

或者

echo "$($passed || 0)"

passed如果变量获取空值,是否有可能获取后备值?

答案1

使用参数扩展

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

相关内容