在shell脚本中有条件地将参数传递给命令的惯用方法?



我需要根据变量$BAD_SCENARIO的值向程序传递特定的选项,这或多或少是一个标志(1或0或空)。我想到了

program $([ "$BAD_SCENARIO" = "1" ] && echo "--emergency-cleanup" || echo "--normal-cleanup") 
$([ "$BAD_SCENARIO" = "1" ] && echo "--notify-admin" || echo "")

看起来很啰嗦。有更好的方法吗?

使用bash数组。使用if

args=()
if [ "$BAD_SCENARIO" = "1" ]; then
args+=(--emergency-cleanup --notify-admin)
else
args+=(--normal-cleanup)
fi
program "${args[@]}"

相关内容

  • 没有找到相关文章

最新更新