簡體   English   中英

如何將參數從 azure 管道傳遞到 shell 腳本?

[英]How to pass parameters from azure pipeline to shell script?

我正在嘗試將參數從 Azure 管道傳遞給 shell 腳本。 正在命中 shell 腳本,但參數沒有傳過來。 這是管道任務:

- task: AzureCLI@2
  inputs:
    azureSubscription: 'our-subscription'
    scriptType: 'bash'
    scriptLocation: 'scriptPath'
    scriptPath: 'Path/to/shellscript/cli.sh'
    arguments: 
    addSpnToEnvironment: 
      ${{ variables.appVersion }}
      ${{ variables.bNumber }}

這是一些 cli.sh

appVersion=$1
buildNo=$2    
echo printing values:
echo appVersion= "$appVersion"
echo buildNo= "$buildNo"

這是管道任務中的一些日志

printing values: 
appVersion=  
buildNo=  
D:\a\1\s\path\to\shellscript\cli.sh: line 72: wget: command not found

另請注意,wget 命令也未被識別。 我錯過了什么?

“addSpnToEnvironment”的用法是將您選擇的 Azure 端點的服務主體 ID 和密鑰添加到腳本的執行環境中。

addSpnToEnvironment 在腳本中訪問服務主體詳細信息(可選)將您選擇的 Azure 端點的服務主體 ID 和密鑰添加到腳本的執行環境。 您可以在腳本中使用這些變量:$env:servicePrincipalId、$env:servicePrincipalKey 和 $env:tenantId。 僅當 Azure 端點具有服務委托人身份驗證方案時,才會兌現默認值:false

在您的任務中,您正試圖通過此屬性傳遞變量,這在語法上是無效的,您可以執行以下操作來獲得所需的結果:

為了快速測試,我將您的腳本作為內聯腳本傳遞,而不是傳遞腳本路徑。

variables:
- name: appVersion
  value: 1.0
- name: bNumber
  value: $(Build.BuildNumber)
steps:
- task: AzureCLI@2
  inputs:
    azureSubscription:'<subscription>'
    scriptType: 'bash'
    scriptLocation: 'inlineScript'
    inlineScript: |
      #!/bin/sh
      appVersion=$1
      buildNo=$2    
      echo printing values:
      echo appVersion= "$appVersion"
      echo buildNo= "$buildNo"
    arguments: '${{ variables.appVersion }} ${{ variables.bNumber }}'

管道 output:

printing values:
appVersion= 1.0
buildNo= 20220223.16
/usr/bin/az account clear
Finishing: AzureCLI

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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