use*_*883 4 linux azure azure-pipelines
我正在尝试将参数从 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 }}
Run Code Online (Sandbox Code Playgroud)
这是 cli.sh 的一些内容
appVersion=$1
buildNo=$2
echo printing values:
echo appVersion= "$appVersion"
echo buildNo= "$buildNo"
Run Code Online (Sandbox Code Playgroud)
这是管道任务内的一些日志
printing values:
appVersion=
buildNo=
D:\a\1\s\path\to\shellscript\cli.sh: line 72: wget: command not found
Run Code Online (Sandbox Code Playgroud)
另请注意,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 }}'
Run Code Online (Sandbox Code Playgroud)
管道输出:
printing values:
appVersion= 1.0
buildNo= 20220223.16
/usr/bin/az account clear
Finishing: AzureCLI
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7084 次 |
| 最近记录: |