задание cron не запускалось с путем оракула и сценарием пути bash не выполнялось - PullRequest
0 голосов
/ 19 мая 2019

** Я написал сценарий оболочки, в котором ошибка во время экспорта пути оракула, задание кукурузы успешно выполнено до EOF, и оно показывает команду bash, не найденную, как as cut, ls..etc ** Основная проблема заключается в том, что сценарий оболочки пути 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

Основное требование - я хочу запустить задание кукурузы для этого скрипта и манипулировать им

1 Ответ

1 голос
/ 19 мая 2019

Я не очень хорошо понимаю описание вашей проблемы, но думаю, что проблема может быть в этой команде:

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" копирует переменную оболочки i в переменную awk с тем же именем; затем вы можете использовать это непосредственно в программе awk.

...