Azure bash CLI 支持 while 和 do
Azure bash CLI support for while and do
我正在尝试编写一个 bash 脚本来解析传递给脚本的参数:
while [[ $# -gt 0 ]]
do
case in
-n|--name)
VMNAME=""
shift
shift
;;
-a|--admin-user)
ADMINUSERNAME=""
shift
shift
;;
-l|--location)
LOCATION=""
shift
shift
;;
-g|-resource-group)
RESOURCEGROUPNAME=""
shift
shift
;;
-a|--availability-set)
AVAILABILITYSETNAME=""
shift
shift
;;
*) # unknown option
echo unknwon ""
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
如果我通过 ssh 进入我的 Linux 虚拟机和 运行 脚本,这会很好地工作。如果我尝试从我的 Azure CLI 执行脚本,我会收到以下错误:
myaccount@Azure:~/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 CLI 在编程语言支持方面与 Linux bash shell 有何不同? Azure bash CLI 支持哪种编程结构和流控制?
据我所知,云控制台(Azure 门户上的 shell)只是 运行 幕后容器中的一个 bash 实例。换句话说,没有区别。如果我尝试 运行 完全按照您上面提供的脚本,我会得到预期的结果...
~/clouddrive$ bash test.bash -n funky
vn name =
funky
Admin User =
Location =
Resource Group =
Availability Set =
您的脚本中的行结尾是否有可能不正确?
我在我的实验室测试并重现了你的错误:
我们应该把Windows (CR LF)
改成Unix (LF)
,然后上传到这个shell。
我正在尝试编写一个 bash 脚本来解析传递给脚本的参数:
while [[ $# -gt 0 ]]
do
case in
-n|--name)
VMNAME=""
shift
shift
;;
-a|--admin-user)
ADMINUSERNAME=""
shift
shift
;;
-l|--location)
LOCATION=""
shift
shift
;;
-g|-resource-group)
RESOURCEGROUPNAME=""
shift
shift
;;
-a|--availability-set)
AVAILABILITYSETNAME=""
shift
shift
;;
*) # unknown option
echo unknwon ""
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
如果我通过 ssh 进入我的 Linux 虚拟机和 运行 脚本,这会很好地工作。如果我尝试从我的 Azure CLI 执行脚本,我会收到以下错误:
myaccount@Azure:~/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 CLI 在编程语言支持方面与 Linux bash shell 有何不同? Azure bash CLI 支持哪种编程结构和流控制?
据我所知,云控制台(Azure 门户上的 shell)只是 运行 幕后容器中的一个 bash 实例。换句话说,没有区别。如果我尝试 运行 完全按照您上面提供的脚本,我会得到预期的结果...
~/clouddrive$ bash test.bash -n funky
vn name =
funky
Admin User =
Location =
Resource Group =
Availability Set =
您的脚本中的行结尾是否有可能不正确?
我在我的实验室测试并重现了你的错误:
我们应该把Windows (CR LF)
改成Unix (LF)
,然后上传到这个shell。