我想使用az cli invoke运行脚本。
I_PASS_THIS_VAR=${1}
az vm run-command invoke --command-id RunShellScript \
--scripts '@foo.sh' \
--parameters=${I_PASS_THIS_VAR} \
-o tsv
我在其中传递$ I_PASS_THIS_VAR,它是一些字符串。那么foo.sh是:
#!/bin/bash
PARAM=${1}
if [ ${PARAM} ]
then
echo "export MY_PARAM=${PARAM}" >> "${HOME_DIR}/.bashrc"
fi
我不工作。 MY_PARAM不等于任何值。为什么?
答案 0 :(得分:0)
要在Linux VM中运行shell脚本,命令应如下所示:
az vm run-command invoke -g group_name -n vm_name --command-id RunShellScript --scripts @run_command.sh --parameters param1
shell脚本位于运行Azure CLI命令的位置。而您的shell脚本将如下所示:
if [ $1 ]
then
echo "export My_Param=$1" >> "/path/.bashrc"
fi
您可以在Azure CLI命令中将参数输入为--parameter
的值,并像上面的代码一样在shell脚本中引用它们。您应该注意的一点是,以上代码中的path
应该是绝对路径。例如,/home/useraccount/.bashrc
和useraccount
是您要导出环境变量的用户。