在Azure管道中是否有提取bash脚本输出的方法
我有很多bash脚本,其中包含各种变量,这些变量通过管道传输到各种脚本中 我一直在想,我是否可以提取由Azure管道激活的bash脚本的输出,作为管道运行时其余部分的管道变量 例如:在Azure管道中是否有提取bash脚本输出的方法,bash,azure,azure-pipelines,Bash,Azure,Azure Pipelines,我有很多bash脚本,其中包含各种变量,这些变量通过管道传输到各种脚本中 我一直在想,我是否可以提取由Azure管道激活的bash脚本的输出,作为管道运行时其余部分的管道变量 例如: foo=$date+%Y%m%d\u%H%m%S输出:20200219\u 143400,我想获取输出以供以后在管道上使用。取决于您如何设计您可以使用的管道: 在同一工作中: 不同的工作: 因此,您需要使用vso[task.setvariable]将需要保存到输出的所有变量打印到管道控制台,然后将它们作为脚本参数值
foo=$date+%Y%m%d\u%H%m%S输出:20200219\u 143400,我想获取输出以供以后在管道上使用。取决于您如何设计您可以使用的管道: 在同一工作中: 不同的工作:
因此,您需要使用vso[task.setvariable]将需要保存到输出的所有变量打印到管道控制台,然后将它们作为脚本参数值传递。变量$foo现在具有date命令的值/输出。你想要什么?你试过vso[task.setvariable]吗?@Ivaniginatiev我已经试过了,但没有完全理解,因为我的变量是在bash任务中声明的,我需要它以备以后在管道中使用。@Jetchisel我想$foo variable output并在另一个bash任务中使用它,作为输出变量,但我找不到how@DorShamay在您的示例中,您需要在outputstep:echo vso[task.setvariable variable=foo;isooutput=true]$foo中启动Job1中的某个位置,并且要在另一个任务中使用它,您需要将它传递给Job2:./myscript.sh$[dependencies.Job1.outputstep.foo]脚本的参数谢谢你的回答,我会检查这个方法并更新
- job: Job1
steps:
- bash: |
$WORKDIR/foo.sh
echo "##vso[task.setvariable variable=foo]$foo"
name: FooStep
- bash: |
$WORKDIR/nextscript.sh $(FooStep.foo)
name: NextScript
# ...
- job: Job1
steps:
- bash: |
$WORKDIR/foo.sh
echo "##vso[task.setvariable variable=foo;isOutput=true]$foo"
name: FooStep
- job: Job2
dependsOn: Job1
steps:
- bash: |
$WORKDIR/job2script.sh $[ dependencies.Job1.outputs['FooStep.foo'] ]
name: Job2ScriptStep
# ...