在一台特定的机器上,我经历了一个CR (0x0D)被添加到-o tsv
单值输出
az resource delete --ids $(az sf cluster show --cluster-name my-cluster --query id -o tsv) --verbose
导致错误:
400 Client Error: Bad Request for url: https://management.azure.com/subscriptions/.../resourcegroups/.../providers/Microsoft.ServiceFabric/clusters/my-cluster%0D?api-version=2020-03-01
#->>>---------------------------------------------------------------------------------------------------------------------------------------------------------^^^
参见https://github.com/Azure/azure-cli/issues/15745
根据@kaiWalters回答中的链接,我检查了我在wsl
下运行的az
版本,发现它较晚,但从windows
安装
$ which az
/mnt/c/Program Files (x86)/Microsoft SDKs/Azure/CLI2/wbin/az
在wsl
中安装debian
/ubuntu
的特定版本
$ curl -sL https://aka.ms/InstallAzureCLIDeb | sudo bash
.
.
.
$ which az
/usr/bin/az
现在可以看到与Linux版本
的区别$ storageId=$(/usr/bin/az storage account show --name "$storageAccountName" -o tsv --query id)
$ echo $storageId | wc -c
135
和使用windows
版本
$ storageId=$(az storage account show --name "$storageAccountName" -o tsv --query id)
$ echo $storageId | wc -c
136
这个故事的寓意?使用WSL
下的Linux
版本,使-o tsv
不附加回车!
因为我确信这在另一台机器上已经工作了,所以我检查了az --version
。
从过时的Azure CLI2.9.1
升级到2.20.0
解决了问题。
这似乎与WSL
中的CRLF
/LF
处理有关-见这里。