你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
许多 Azure CLI 参数都接受 JSON 值,但由于将 JSON 平展为字符串可能很困难,Azure CLI 支持速记语法。 简写语法是 JSON 字符串的简化表示形式。
本文提供了速记语法的示例,并演示如何将 JSON 作为文件传递。
注释
当参数说明显示为类似 Support shorthand-syntax, JSON-file and YAML-file. Try "??" to show more
时,你会知道参数接受简写语法。
完整值速记语法
速记语法的格式是 JSON,被双引号括起来。 双引号会导致 JSON 值作为字符串在 PowerShell 和 Bash 脚本语言中传递。 下面是 JSON 示例:
{
"name": "Bill",
"age": 20,
"paid": true,
"emails": [
"Bill@microsoft.com",
"Bill@outlook.com"
],
"address": {
"country": "USA",
"company": "Microsoft",
"details": {
"line1": "15590 NE 31st St",
"line2": "Redmond, WA"
}
}
}
在传递参数值中的 JSON 时,JSON 将被展平并用双引号括起来。
az some-command --contact "{name:Bill,age:20,paid:true,emails:[Bill@microsoft.com,Bill@outlook.com],address:{country:USA,company:Microsoft,details:{line1:'15590 NE 31st St',line2:'Redmond, WA'}}}"
部分值速记语法
分部值的速记语法由两个部分组成,这两个部分通过一个位于索引=
和key
之间的等号value
连接。
下面是一个示例:key=value
。
该值可以是简化的字符串、完整值格式、JSON 或 JSON 文件路径。 使用所提供的 JSON 示例,请按照以下示例设置 --contact
参数的属性:
使用 Partial Value
表示一个单个键值对。
az some-command --contact name=Bill
请使用 Partial Value
来处理两个键值对。 请注意分隔这两对之间的空间。
az some-command --contact age=20 paid=true
使用 Partial Value
作为第二个元素。
az some-command --contact emails[1]="Bill@outlook.com"
使用Partial Value
来指定详细信息属性在地址。
az some-command --contact address.details="{line1:'15590 NE 31st St',line2:'Redmond, WA'}"
合并完整和部分值速记语法
可以组合完整和部分值语法,但始终从 Full Value
后面 Partial Value
开始。 如果反转顺序,则最终数据仅包含Full Value
而没有Partial Value
中定义的属性。
使用 Full Value
后跟 Partial Value
:
az some-command --contact "{name:Bill,age:20,paid:true,emails:[Bill@microsoft.com,Bill@outlook.com]}" motto="One man's bug is another man's lesson."
还可以为 Full Value
列表属性添加或更新一个新元素。 例如,可以通过以下方式 Partial Value
设置第二个电子邮件地址:
az some-command --contact "{name:Bill,age:20,paid:true,emails:[Bill@microsoft.com]}" emails[1]="Bill@outlook.com" motto="One man's bug is another man's lesson."
在文件中传递 JSON
还可以将 JSON 文件作为参数值传递。 使用复杂 JSON 时,建议使用此方法。
az some-command --contact address.details=./address_details.JSON
单引号字符串
单引号字符串用于传递包含特殊字符的字符串值::
、,
{
}
、[
、]
、、null
、 ??
和空格。
分析速记语法时,这些字符通常具有其他含义。 单引号告知分析程序将所有内容视为字符串。
传递包含空格和其他特殊字符的字符串值
下面是要作为参数中的 --contact
值传递的示例 JSON:
{
"name": "Bill RP",
"age": 20,
"paid": true,
"data": "{a: [1, 2]}"
}
在 Full Value
格式中使用单引号:
az some-command --contact "{name:'Bill RP',age:20,paid:true,data:'{a: [1, 2]}'}"
在 Partial Value
格式中使用单引号:
az some-command --contact name="'Bill RP'" data="'{a: [1, 2]}'"
在下一个示例中,还可以删除 name
键的单引号。 分析器不区分 Full Value
表达式、 null
值或 ??
标志。
使用 Partial Value
格式:
az some-command --contact name="Bill RP"
使用撇号
撇号字符 ('
) 需要单引号字符串/'
特殊转义符()才能区分单引号字符串的末尾。 正斜杠(/
) 是转义字符,仅在单引号字符串'
撇号()之后。 如果/
不在‘引号字符串’中,或者/
不在'
之后,/
则为普通字符。
传递 Full Value
格式:
az some-command --contact "{name:'bill'/s',age:20,paid:true}"
传递 Partial Value
格式:
az some-command --contact name="'bill'/s'"
如果 value
不是 单引号字符串,则无需在后面 '
添加转义字符。
传递 Partial Value
格式:
az some-command --contact name="bill's"
下面是使用以下 JSON 的另一个示例:
{
"name": "Bill",
"motto": "One man's bug is another man's lesson.",
"age": 20,
"paid": true,
"emails": [
"Bill@microsoft.com",
"Bill@outlook.com"
]
}
在Full Value
格式中,使用单引号字符串,并将'
替换为'/
。
az some-command --contact "{name:Bill,motto:'One man'/s bug is another man'/s lesson.',age:20,paid:true,emails:[Bill@microsoft.com,Bill@outlook.com]}"
采用 Partial Value
格式时,可以将包含撇号的值分析为字符串,用双引号括起来。
az some-command --contact motto="One man's bug is another man's lesson."
处理 NULL 值
将单词“null”作为字符串值传递
有时需要传递“null”字符串值。 为了区分 null
值,它必须是 单引号字符串。
例如,如果要将“null”字符串传递到 属性中:
JSON:
{
"name": "null",
"age": 20,
"paid": true
}
使用 Full Value
格式:
az some-command --contact "{name:'null',age:20,paid:true}"
使用 Partial Value
格式:
az some-command --contact name="'null'"
null
传递一个值
速记语法在格式null
和Full Value
中支持Partial Value
关键字。
例如,如果要将以下对象连同null
值地址属性一起传递到--contact
参数中:
{
"name": "Bill",
"age": 20,
"paid": true,
"emails": [
"Bill@microsoft.com",
"Bill@outlook.com"
],
"address": null
}
使用 Full Value
格式:
az some-command --contact "{name:Bill,age:20,paid:true,emails:[Bill@microsoft.com,Bill@outlook.com],address:null}"
使用 Partial Value
格式:
az some-command --contact name=Bill address=null
在更新命令中使用null
值
在更新命令中, null
值通常用于取消设置对象的属性,或删除数组或字典的元素。
{
"contact": {
"name": "Bill",
"age": 20,
"paid": true,
"emails": [
"Bill@microsoft.com",
"Bill@outlook.com"
],
"address": {
"country": "USA",
"company": "Microsoft",
"details": {
"line1": "15590 NE 31st St",
"line2": "Redmond, WA"
}
}
},
"other_properties": {}
}
如果已存在包含上面所示 JSON 值的资源,在更新命令中传递一个null
值会重置密钥的值。
az some-update-command --contact address=null
下面是删除资源电子邮件的第一个元素的另一个示例:
az some-update-command --emails [0]=null
使用 ??
来显示帮助
使用双问号 ??
是一个特殊关键字,用于显示参数或子属性的可用帮助。 还可以在速记语法中使用它来获取帮助。
注释
Bash shell 使用 ?
作为通配符。 请确保问号??
被括在双引号中。
使用 ??
来显示参数的帮助消息
显示 --contact
参数的帮助信息:
az some-command --contact "??"
在??
格式中使用Full Value
编写--contant
时显示Full Value
参数的帮助信息。
az some-command --contact "{??"
az some-command --contact "{name:Bill,??"
显示在编写--contant.address
属性Full Value
时的帮助消息。
az some-command --contact "{name:Bill,address:??"
显示在编写--contant.address.country
属性Full Value
时的帮助消息。
az some-command --contact "{name:Bill,address:{country:??"
显示在编写--contant.emails
属性Full Value
时的帮助消息。
az some-command --contact "{name:Bill,address:{country:USA},emails:??"
在写入--contant.emails
时,显示Full Value
属性的元素帮助消息。
az some-command --contact "{name:Bill,address:{country:USA},emails:[??"
在??
格式中使用Partial Value
显示在编写--contant.address
属性Partial Value
时的帮助消息。
az some-command --contact address="??"
显示在编写--contant.emails
属性Partial Value
时的帮助消息。
az some-command --contact emails="??"
在写入--contant.emails
时,显示Partial Value
属性的元素帮助消息。
az some-command --contact emails[0]="??"