我创建了一个使用脚本操作的Oozie工作流程。它调用的脚本有两个必需参数和几个可选参数。在Oozie工作流程中处理可选参数的正确方法是什么?
oozie job -config job.properties -run -DMandatory1 a -DMandatory2 b -DOptional1 c
我无法在工作流XML(Optional2,Optional3,ect)中列出参数,因为Oozie会错误地说明该参数不存在。在调用允许每个选项的Oozie脚本之前,是否需要创建多个工作流并创建一些逻辑?
答案 0 :(得分:0)
您是否尝试将空字符串作为参数值传递,例如-Doptional1 ''
在命令行上?
如果shell脚本足够智能以忽略空参数(例如$# -ge 3
但"$3" == ""
表示“无参数3”),那么结果将与未传递参数相同。
答案 1 :(得分:0)
如果参数的数量少于那么你可以为可选变量传递一些默认的虚拟值。然后,您可以在shell脚本中检查相同内容。如果出现默认值,请不要使用它,否则请使用它。
因为如果你没有在工作流中指定你的shell或ssh动作中提到的任何变量,Oozie将无法给出EL错误,因为它无法用任何东西替换可选变量。