gpt4 book ai didi

linux - 如何将参数从azure管道传递到shell脚本?

转载 作者:行者123 更新时间:2023-12-02 01:43:30 26 4
gpt4 key购买 nike

我正在尝试将参数从 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 和 key 添加到脚本的执行环境中。

addSpnToEnvironment访问脚本中的服务主体详细信息 (可选)将您选择的 Azure 终结点的服务主体 ID 和 key 添加到脚本的执行环境中。您可以在脚本中使用以下变量:$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 }}'

管道输出:

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

关于linux - 如何将参数从azure管道传递到shell脚本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71244892/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com