2017-09-26 2 views
0

を行う私はスクリプトに渡された引数を解析し、bashスクリプトを記述しようとしている:私は私のLinux仮想マシンにsshとスクリプトを実行する場合アズールbashのCLIのサポートと

while [[ $# -gt 0 ]] 
do 
     case $1 in 
     -n|--name) 
       VMNAME="$2" 
       shift 
       shift 
     ;; 
     -a|--admin-user) 
       ADMINUSERNAME="$2" 
       shift 
       shift 
     ;; 
     -l|--location) 
       LOCATION="$2" 
       shift 
       shift 
     ;; 
     -g|-resource-group) 
       RESOURCEGROUPNAME="$2" 
       shift 
       shift 
     ;; 
     -a|--availability-set) 
       AVAILABILITYSETNAME="$2" 
       shift 
       shift 
     ;; 
     *) # unknown option 
       echo unknwon "$1" 
       shift # past argument 
     ;; 
     esac 
done 

echo "vn name = " 
echo $VMNAME 
echo "Admin User = " $ADMINUSERNAME 
echo "Location = " $LOCATION 
echo "Resource Group = " $RESOURCEGROUPNAME 
echo "Availability Set = " $AVAILABILITYSETNAME 

これが正常に動作します。私はAzureのCLIからスクリプトを実行しようとすると、私は、次のエラーを取得:AzureのCLIは、それの面で、Linuxのbashシェルの違いはどのよう

[email protected]:~/clouddrive$ bash test.bash -n test 
test.bash: line 1: syntax error in conditional expression 
'est.bash: line 1: syntax error near `]] 
'est.bash: line 1: `while [[ $# -gt 0 ]] 

は、プログラミング言語のサポートですか? Azure bash CLIでは、どのようなプログラミング構造とフロー制御がサポートされていますか?

答えて

1

は、私は私のラボでテストしてエラーを再現:

enter image description here

私たちは、このシェルにアップロードし、Unix (LF)からWindows (CR LF)を変更する必要があります。

enter image description here

+0

Newby間違い!ありがとう! – Jeremy

2

私の知る限り、クラウドコンソール(Azureポータルのシェル)は背後のコンテナでbashインスタンスを実行するだけです。つまり、違いはありません。そして、私はあなたが上で提供されているとおりに正確にスクリプトを実行しようとすると、私は期待した結果を得る...

~/clouddrive$ bash test.bash -n funky 
vn name = 
funky 
Admin User = 
Location = 
Resource Group = 
Availability Set = 

は行末があなたのスクリプトで間違っているというチャンスはありますか?

関連する問題