az vim运行命令使用参数调用shell脚本

时间:2019-06-07 11:19:22

标签: azure azure-cli

我想使用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不等于任何值。为什么?

1 个答案:

答案 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/.bashrcuseraccount是您要导出环境变量的用户。