我试图通过使用&&&'分离每个命令来执行多个shell脚本。使用适用于Linux的Azure自定义扩展脚本。
ARM模板是部署模型。
示例代码段:
"settings": {
"fileUris": "[script1,script2, script3]",
"commandToExecute": "sh script1.sh && sh scrip2.sh && sh script3.sh"
}
但是只执行第一个脚本而另外两个脚本不执行。
注意:脚本日志路径中也没有错误。我也看到了在waagent文件夹路径中下载的所有脚本。
任何帮助都会非常棒。
操作系统:Linux
答案 0 :(得分:4)
ARM模板代码段
cmdToExecute = script1.sh param1 param2&& script2.sh param1 param2&& script3.sh作为字符串传递给包装脚本,如
“commandToExecute”:“[concat('sh script_executor.sh \”',参数('cmdToExecute')'\“')]”
script_executor.sh - 将所有命令作为参数并执行每个命令
答案 1 :(得分:1)
如果您有多个脚本,则可以创建一个调用依赖脚本的入口点脚本,然后将入口点脚本,相关脚本和任何其他相关二进制文件上载到脚本位置(Azure存储blob或GitHub)。您可以使用以下格式确保上传多个文件:“fileUris” : [“ScriptFileUri1”, “ScriptFileUri2”, "ScriptFileUri3"]
更多信息请参阅此link。
如果要将script1.sh设置为入口点脚本,可以编辑脚本,如下所示:
##script in scrpit1.sh
echo "hello world"
##call script2.sh
./script2.sh
##call script3.sh
./script3.sh