[英]az vm run-command parameters in key=value format referencing?
我正在運行以下命令:
az vm run-command invoke -g my-group --name my-vm --command-id RunShellScript --scripts 'echo "$@"' --parameters 'foo=bar' 'color=red' 'thing=car'
輸出為:
{
"value": [
{
"code": "ProvisioningState/succeeded",
"displayStatus": "Provisioning succeeded",
"level": "Info",
"message": "Enable succeeded: \n[stdout]\nbar red car\n\n[stderr]\n",
"time": null
}
]
}
問題在哪里? 我不知道如何引用值。
似乎它們在運行時在env中可用:
`az vm run-command invoke -g my-group --name my-vm --command-id RunShellScript --scripts 'env | grep -E "foo|color|thing"' --parameters 'foo=bar' 'color=red' 'thing=car'
輸出:
{
"value": [
{
"code": "ProvisioningState/succeeded",
"displayStatus": "Provisioning succeeded",
"level": "Info",
"message": "Enable succeeded: \n[stdout]\nfoo=bar\nthing=car\ncolor=red\n\n[stderr]\n",
"time": null
}
]
}
如果我想使用這樣的東西:
az vm run-command invoke -g my-group --name my-vm --command-id RunShellScript --scripts "for i ; do echo ${i} >> vars.file; done" --parameters 'foo=bar' 'color=red' 'thing=car'
然后使用:
source vars.file
現在它將起作用,因為參數被解析為鍵和值,並且只有值被重定向到vars.file
當然,我可以做這樣的事情:
az vm run-command invoke -g my-group --name my-vm --command-id RunShellScript --scripts 'env | grep -E "EXPORTED_"' --parameters 'EXPORTER_foo=bar' 'EXPORTED_color=red' 'EXPORTED_thing=car'
,但解決方案過於籠統和混亂。
謝謝
對於az vm run-command invoke
,您發布的結果是正確的,並且僅顯示為字符串。 因此它沒有可讀性。 但是,如果在Azure門戶中運行,您將了解結果。
您可以參考我發布的鏈接,以格式化要在命令中放入的參數。 如果只想顯示命令的結果,則可以添加--query value[*].message
或--query value[0].message
。
更新
Azure CLI命令可以僅使用提供的簡單參數執行一些簡單的bash命令。 在Linux VM中有一些串行方式來運行腳本 。 您可以選擇一種優於Azure CLI的方式。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.