2017-09-29 16 views
0

Azure CLI에서이 명령을 실행하면 자원 그룹이 실제로 있는지에 따라 true가됩니다. 훌륭하게 작동합니다. 또한이 양식에서 작동변수를 명령 출력으로 설정하는 올바른 형식

az group exists –n MyResourceGroup 

:

az group exists –n MyResourceGroup 

떠들썩한 파티 스크립트에서 내가 그 명령의 출력에 변수를 설정하려고 경우 만

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

처음 하나는 작동합니다. -n을 사용할 때 다음 오류가 발생합니다.

az: error: unrecognized arguments: –n MyResourceGroup

그러나이 명령은 -n 매개 변수와 함께 작동합니다. "$()"내에서 사용할 때 하나의 대시로 인코딩해야합니까? 왜 그 형태를 받아들이지 않을까요?

+1

이 bash는 스크립트를 작성하는 당신이 마이크로 소프트의 제품을 사용하십니까 :

enter image description here

는 다음과 같이 스크립트를 수정? '-'! ='-' – Cyrus

답변

2

편집기가 하이픈 - 마이너스 - (U + 002D) 대신 대시 을 사용하는 것처럼 보입니다. 이들은 다른 문자입니다. Bash와 다른 유닉스 계열 쉘은 대시를 옵션의 시작이 아닌 공통 char로 취급합니다. 이미 작성된 스크립트 파일을 많이 가지고 대신 마이너스가 어떤 대시, 당신은

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

같은 명령으로 자동으로 변환 할 수 있는지 알 수없는 경우 주의 깊게 스크립트를 확인할 수 있습니다. –n–n과 다릅니다. Azure Cloud Shell에서는 그 차이를 분명하게 볼 수 있습니다.

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