【问题标题】:Proper format for setting the variable to the output of a command将变量设置为命令输出的正确格式
【发布时间】:2023-03-17 10:04:01
【问题描述】:

如果我从 Azure CLI 运行此命令,我会得到真假,具体取决于资源组是否实际存在。效果很好。

az group exists –n MyResourceGroup

它也适用于这种形式:

az group exists –n MyResourceGroup

如果在 bash 脚本中我尝试为这些命令的输出设置一个变量:

GROUPEXISTS1="$(az group exists --name MyResourceGroup)"
GROUPEXISTS2="$(az group exists –n MyResourceGroup)"

只有第一个有效。当我使用 -n 时,出现以下错误:

az: 错误:无法识别的参数:-n MyResourceGroup

但是我知道该命令与 -n 参数一起使用。在“$()”中使用它时是否需要对单个破折号进行编码?不然它为什么不接受那种形式?

【问题讨论】:

  • 您是否使用 Microsoft 的产品来编写 bash 脚本? != -

标签: bash azure azure-cli azure-cli2


【解决方案1】:

您的编辑器似乎将连字符减号- (U+002D) 替换为破折号。这些是不同的字符。 Bash 和其他类似 unix 的 shell 将 dash 视为普通字符,而不是选项的开始。 如果你有很多已经编写好的脚本文件并且不知道是否有一些破折号而不是减号,你可以使用类似的命令自动转换它们

sed -i 's/–/-/g' your-script-file

【讨论】:

    【解决方案2】:

    您可以仔细检查您的脚本。 –n–n 不同。在 Azure Cloud Shell 中,您可以清楚地看到差异。

    修改你的脚本如下:

    GROUPEXISTS2="$(az group exists -n MyResourceGroup)"
    

    【讨论】:

      猜你喜欢
      • 2014-05-26
      • 1970-01-01
      • 2020-12-07
      • 2022-01-24
      • 1970-01-01
      • 1970-01-01
      • 2017-04-20
      • 2020-12-19
      • 2022-09-27
      相关资源
      最近更新 更多