输出命令为空

时间:2020-10-19 12:54:53

标签: bash azure-devops null

我正在使用Azure管道变量来为命令构造一组参数。我必须用于Azure管道的变量类型为宏格式(例如$(var)),您可以在此处查看其详细信息:https://docs.microsoft.com/en-us/azure/devops/pipelines/process/variables?view=azure-devops&tabs=yaml%2Cbatch#runtime-expression-syntax

如果$(var)不包含值,它将打印$(var)

,而不是不打印任何内容。

当我运行命令并且未传递该值时,屏幕上会提示错误,提示未找到命令。目前,这没什么大不了,它不会出错以下命令集,但我希望至少能抑制它。

VAR_TERRAFORMDESTROY="$(TERRAFORMDESTROY)"

if [ ${#VAR_TERRAFORMDESTROY} -ge 1 ]; then
  VAR_TERRAFORMDESTROY="yes"
else
  VAR_TERRAFORMDESTROY="no"
fi

在日志输出中,它将打印/vsts/_work/_temp/4e426335-0930-4375-b05c-c4dbbcb38139.sh: line 5: TERRAFORMDESTROY: command not found

我尝试过VAR_TERRAFORMDESTROY="$(TERRAFORMDESTROY)" > /dev/null 2>&1,但是由于> /dev/null 2>&1不在方括号()内,因此不会将结果输出为null。而且由于Azure YAML变量的工作原理,它不能放在方括号内。

请问有人可以为我压制command not found输出吗?

1 个答案:

答案 0 :(得分:1)

请问有人可以建议抑制我找不到的命令输出吗?

禁止显示组错误消息

{ VAR_TERRAFORMDESTROY="$(TERRAFORMDESTROY)"; } > /dev/null 2>&1