[英]Helping understanding bashing scripting in run-command
我繼承了一些我想理解的代碼。 它是azure cli命令和linux bash腳本的組合
#!/bin/bash -e
info "Installing Dependencies"
declare -a PIDS=()
# "Deploying into the VMs"
for i in $(seq 1 $NODES_NUM); do
THIS_VM_NAME="${VM_NAME}${i}"
# "Check if the VM exists"
if `az vm list -o table | grep -q "${THIS_VM_NAME}"`; then
info "Deploying: Installing deps and Pairty, Executing for ${THIS_VM_NAME}"
PIDS[${i}]=$!
az vm run-command invoke --name ${THIS_VM_NAME} \
--command-id RunShellScript \
--resource-group ${RSC_GRP_NAME} \
--query "output[].message | join('\n\n', @)" \
--scripts @${TEMPLATES}/user-data.sh &
PIDS[${i}]=$!
fi
done
# wait for all pids
info "Waiting for Completion.."
for pid in ${PIDS[*]}; do
wait $pid
done
我希望指針理解如何
@${TEMPLATES}/user-data.sh &
PIDS[${i}]=$!
作品。
PIDS
上的指針,這是否意味着進程可以並發運行? 通過測試,同樣的事情發生在我身上。 但是兩個星期前,它運作良好。 我會給你看一些東西:
持續
命令和輸出正常。 在后端,腳本應該像上面一樣。
現在
您可以看到該命令未在后端設置參數。 但是,如果僅使用帶參數的shell命令運行,則效果也很好。
根據測試,幾天來CLI可能發生了一些不好的事情。 您可以等待連續幾天,然后再次運行CLI命令。
該文件位於另一個文件夾中,並且工作正常嗎?
如果您是將shell腳本放在另一個文件夾中,那么如果CLI命令照常工作,它也可以很好地工作。
我還要感謝PIDS上的指針,這是否意味着進程可以並發運行?
您應該注意一些事情。 CLI命令在Linux中作為進程運行,因此它可以在后端同時運行。 但是run-command
只是通過VM的代理程序運行shell腳本,並且一次只能運行一個腳本。 您可以在此處獲取詳細信息。
此外,您可以使用VM擴展名通過“運行命令”來執行您想做的事情,它更加可用。
希望這會幫助你。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.