[英]cron job didn't run with oracle path and with path bash script didn't run
**我编写了一个shell脚本,其中的错误是我导出oracle路径时玉米作业成功运行到EOF,并且它显示未找到像cut,ls..etc这样的bash命令。** 主要问题是没有导出oracle路径外壳程序脚本成功运行,并且玉米作业未执行
#!/bin/bash
function execute_sql(){
export ORACLE_HOME=/Oracle/app/oracle/product/11.2.0.2/db_1
export SET PATH3=/Oracle/app/oracle/product/11.2.0.2/db_1/bin:.
sqlplus system@xe/oracle123 << EOF > /usr/home/cron.log
@/usr/home/usr/date_expired.sql > /usr/home/usr/date_EXPIRED.txt
EOF
return
exit
}
execute_sql
function processing(){
SourceFile="/usr/home/usr/date_EXPIRED.txt"
#if [ -f "$SourceFile" ]; then
cut -c-3 /usr/home/usr/date_EXPIRED.txt |sort |uniq
>/usr/home/usr/seq-TD_EXP.txt
file=`cat /usr/home/usr/seq-TD_EXP.txt`
j=_TDA_EXP
for i in $file
do
awk -F "|" '{if (substr($file,1,3)=="'$i'" ) print $2;}'
/usr/home/usr/date_EXPIRED.txt > /usr/home/usr/usr_seq/$i$j$today.txt
done
#fi
rm -r /usr/home/usr/seq-TD_EXP.txt
return
}
processing
exit
主要要求是我要为该脚本运行玉米作业并对其进行操作
我不太了解您的问题描述,但我认为问题可能出在以下命令上:
export SET PATH3=/Oracle/app/oracle/product/11.2.0.2/db_1/bin:.
我认为您想要的是:
export PATH="/Oracle/app/oracle/product/11.2.0.2/db_1/bin:$PATH"
说明:“ SET
”不属于该变量, PATH3
不是一个相关变量,您应该保留旧的PATH
(将$PATH
添加到新值中)。 同样,在PATH
添加“ .
”并不总是安全的。
我还建议清理awk
命令:
awk -F "|" -v "i=$i" '{if (substr($file,1,3)==i ) print $2;}'
说明: -v "i=$i"
将shell变量i
复制到同名的awk变量; 您可以直接在awk
程序中使用它。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.