You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在脚本中引用Bamboo制品并获取其准确路径?

如何在Bamboo脚本任务中获取共享制品的准确路径

问题背景

已经能在Bamboo的阶段/任务间共享制品,比如配置“将制品'My artifact'放入目标目录'foo'”可以正常生效。但在Script任务里想把该制品作为参数传递时,无法获取其准确名称:用foo/*当参数的话,*不会被Shell展开,直接原样传递,即便将Interpreter设为Shell也没用。

希望找到类似${bamboo.artifact}的变量来直接引用,不想依赖Shell通配符,且已知制品在Bamboo中的名称,已查阅过Bamboo共享制品和变量相关文档。

解决方案

  • 使用Bamboo内置的制品路径变量
    Bamboo针对每个共享制品提供了专属的路径变量,格式为 ${bamboo.artifact.<制品名称>.destination}。注意制品名称里的空格要替换为下划线,比如你的例子中,变量就是 ${bamboo.artifact.My_artifact.destination},它会直接返回你设置的目标目录路径foo。

  • 获取具体制品文件路径
    如果需要单个制品文件的完整路径,可以在脚本中结合变量和Shell命令实现:

    # 先通过变量拿到目标目录
    ARTIFACT_DIR=${bamboo.artifact.My_artifact.destination}
    # 获取目录下的制品文件(假设只有一个文件)
    ARTIFACT_FILE=$(ls "$ARTIFACT_DIR"/*)
    # 将文件路径作为参数传递给目标命令
    your_target_command "$ARTIFACT_FILE"
    

    这种方式既精准定位了制品目录,又能避免通配符不展开的问题。

  • 让通配符正常展开的脚本写法
    如果坚持使用通配符,不要直接在参数栏填写foo/*,而是把执行逻辑写到脚本内容中:

    # 在脚本内部执行,Shell会自动展开通配符
    your_target_command foo/*
    

    确保Script任务的Interpreter设置为Shell,这样通配符就能被正确解析。

内容的提问来源于stack exchange,提问作者FuriousGeorge

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 07:05:18