我在 Azure 管道作業中有一個命令列腳本任務。在腳本中,我有以下內容:
$branchSource = "$(System.PullRequest.SourceBranch)"
$branchSourcePath = $branchSource -replace "refs/heads/", ""
理論上,這應該將 refs/heads/branchName 設定為 $branchSource 變數。然后我們將 refs/heads/ 替換為空白空間/nothing,然后將剩下的 ie:branchName 存盤在 $branchSourcePath 中。
管道運行時我遇到的問題是在控制臺中 - 參考上面的行:
/Users/myagent/path/*******-********.sh: line 2: =: command not found
/Users/myagent/path/*******-********.sh: line 3: =: command not found
如果我在腳本中回顯“$(System.PullRequest.SourceBranch)”,它會將其顯示為路徑。如何僅獲取存盤在變數中的分支名稱。
提前致謝。
uj5u.com熱心網友回復:
/Users/myagent/path/*******-************.sh:第 2 行:=:找不到命令
從錯誤訊息來看,該任務正在使用 bash 腳本。您的命令適用于 PowerShell 任務。
您可以更改為使用 PowerShell 任務。
或者您可以更改為使用 Bash 腳本:
這是一個例子:
BRANCH_NAME=$(echo "$(System.PullRequest.SourceBranch)" | awk -F/ '{print $NF}')
echo $BRANCH_NAME
echo "##vso[task.setvariable variable=PullRequest_Source_Branch;]$BRANCH_NAME"
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/492653.html
標籤:天蓝色 天蓝色的devops
