输出变量是 DolphinScheduler 任务调度中实现数据流动与任务协作的核心机制,通过显式定义和传递参数,解决了跨节点数据共享、优先级冲突等问题,同时支持复杂流程编排(如子流程、条件分支)。合理使用输出变量能显著提升工作流的灵活性和可维护性。本文将介绍 DolphinScheduler 中重要的输出变量及其使用方法。
1、Shell 脚本中,单引号 (')、双引号 (") 和反引号 (`)使用
在 Shell 脚本中,单引号 (')、双引号 (") 和反引号 (`) 各自有不同的作用和用法。理解它们的区别和用法对于编写和调试 Shell 脚本非常重要
1.1、单引号 (')
- 用途:完全引用,用于保护字符串中的所有字符,不进行变量替换或命令替换
- 特性:引号内的任何字符都将原样输出,不会进行任何解释
VAR="world"
echo 'Hello, $VAR' # 输出:Hello, $VAR
1.2、双引号 (")
- 用途:部分引用,用于保护字符串中的大部分字符,但允许变量替换和命令替换
- 特性:引号内的变量和命令会被解释,其余字符原样输出
VAR="world"
echo "Hello, $VAR" # 输出:Hello, world
1.3、反引号 (`)
- 用途:命令替换,用于执行引号内的命令,并将命令的输出作为结果返回
- 特性:引号内的命令会被执行,结果会替换反引号中的内容
- 注意:反引号是旧的命令替换方式,更推荐使用 $()
DATE=`date`
echo "Current date and time: $DATE" # 输出当前日期和时间
1.4、推荐使用 $() 进行命令替换
- 更现代和可读性更好
- 可以嵌套使用,而反引号嵌套使用比较困难
DATE=$(date)
echo "Current date and time: $DATE" # 输出当前日期和时间
# 嵌套命令替换示例
OUTER=$(echo "Outer $(echo "Inner")")
echo $OUTER # 输出:Outer Inner
1.5、使用场景
- 单引号:当你不希望字符串中的任何内容被解释时使用,例如正则表达式、特殊字符等
- 双引号:当你希望字符串中包含变量或命令替换时使用
- 反引号/$():当你需要执行命令并使用其输出时使用
2、Dolphinscheduler中的输出变量和文件传递
2.1、Shell输出变量
-
2.1.1、流程如下

-
2.1.2、任务配置
taskA

echo 'taskA'
echo "#{setValue(linesNum=${lines_num})}"
echo '${setValue(words=20)}'
注意 : 这里${lines_num}其实直接就是通过Worker进行变量进行替换的
taskB

echo 'taskB'
echo ${linesNum}
echo ${words}
- 2.1.3、结果输出
主要看taskB的输出
}
[INFO] 2024

最低0.47元/天 解锁文章
8658

被折叠的 条评论
为什么被折叠?



