如何解决尝试在do循环中向我们发送Azure CLI命令循环外工作
我正在尝试在do循环中使用一些Azure cli命令。 这些命令在循环外部运行。 我不知道为什么它们会在循环外返回null。
`az login --service-principal **creds removed**
displayName=$(az ad app list --all | jq '. [] .displayName')
for name in $displayName;
do
echo $name
az ad app list --all --display-name $name | jq ".[0] .passwordCredentials[0].endDate"
done`
az ad app list --all --display-name "boss-app" | jq ".[0] .passwordCredentials[0].endDate"
"2228-02-34T25:50:41.324437+00:00
即使我将完整的命令放入循环中,它也可以正确输出日期,当我尝试使用变量$ name时,它似乎不起作用。
抱歉,这是一个菜鸟问题。
解决方法
您可以将脚本更改为此:
az login --service-principal **creds removed**
for name in $(az ad app list --all | jq '. [] .displayName')
do
echo $name
az ad app list --all --display-name $name | jq ".[0] .passwordCredentials[0].endDate"
done
,
由于您已在循环中使用[0]
过滤了广告应用程序,因此我认为您应像这样在循环中更改代码,而无需指定数组索引 az login --service-principal **creds removed**
displayName=$(az ad app list --all | jq '. [] .displayName')
for name in $displayName;
do
echo $name
az ad app list --all --display-name $name | jq ".[] .passwordCredentials[].endDate"
done
:
--query
结果
命令
此外,如果要使用Azure CLI全局参数jq
而不是""
,则可以按以下方式使用它:
请注意,在查询中,尝试对Windows使用双引号''
,对于Linux OS使用单引号az login --service-principal **creds removed**
displayName=$(az ad app list --all --query "[].displayName" -o tsv)
for name in $displayName;
do
echo $name
az ad app list --all --display-name $name --query "[].passwordCredentials[].endDate"
done
。
{{1}}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。