簡體   English   中英

幫助了解運行命令中的bashing腳本

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM