Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash 将变量设置为命令输出的正确格式_Bash_Azure_Azure Cli_Azure Cli2 - Fatal编程技术网

Bash 将变量设置为命令输出的正确格式

Bash 将变量设置为命令输出的正确格式,bash,azure,azure-cli,azure-cli2,Bash,Azure,Azure Cli,Azure Cli2,如果从Azure CLI运行此命令,则根据资源组是否实际存在,会得到一个true false。效果很好 az group exists –n MyResourceGroup 它也以这种形式工作: az group exists –n MyResourceGroup 如果在bash脚本中,我尝试将变量设置为这些命令的输出: GROUPEXISTS1="$(az group exists --name MyResourceGroup)" GROUPEXISTS2="$(az group exis

如果从Azure CLI运行此命令,则根据资源组是否实际存在,会得到一个true false。效果很好

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参数。在“$()”中使用单个破折号时是否需要对其进行编码?否则它为什么不接受该表单呢?

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

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

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

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

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

按以下方式修改脚本:

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

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

按以下方式修改脚本:

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

您是否使用Microsoft的产品编写bash脚本<代码>–!=<代码>-您是否使用Microsoft的产品编写bash脚本<代码>–!=<代码>-