【发布时间】:2015-11-17 11:18:57
【问题描述】:
我成功创建了一个包含文件的脚本,并且我成功地通过 jython 过程调用了这个脚本,
这是我的 Jython 进程:
import os
cmd = "<%=odiRef.getSchemaName("script_path","D")%>/split_ncl.sh <%=snpRef.getSchemaName("data_in","D")%>/<%=odiRef.getOption("REP_FILE")%> <%=snpRef.getOption("FILENAME")%>"
retcode = os.system(cmd)
if retcode > 1 :
raise "Fatal ListError (%d)" % retcode, "Erreur de split"
这是我的脚本 shell split_ncl.sh:
exec > Log/errors.log
exec 2>&1
data_in=$1
fichier=$2
cd $data_in
#Purge des fichiers
rm -f Split/INIT_ENC.dat
rm -f Split/INIT_ELP.dat
grep -P "^..........ENC" fichier ><!> Split/INIT_ENC.dat
grep -P "^..........ELP" $fichier >> Split/INIT_ELP.dat
一切正常。我添加exec > Log/errors.log 和exec 2>&1 将我脚本的所有错误重定向到errors.log
当我在 UNIX 环境中执行脚本时,它运行良好,它可能会记录错误,但是当我使用 ODI 并像我所做的那样通过 Jython 过程调用此脚本时,它无法检测到我的 shell 脚本的错误,例如,如果我输入fichier 而不是$fichier(缺少$),这是不正确的并且它无法检测到错误。我该如何解决这个问题!
【问题讨论】:
标签: linux bash shell jython oracle-data-integrator