[英]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.