运行脚本时退出oracle用户会话

运行脚本时退出oracle用户会话,oracle,bash,shell,ubuntu,Oracle,Bash,Shell,Ubuntu,我在Ubuntu系统上的bash脚本有问题。我需要编写一个脚本,连接到甲骨文一个假脱机一些查询文本文件 几乎所有这些任务都已完成,但脚本并没有按应有的方式运行 要生成与oracle的连接,我在脚本中使用以下行: su oracle export ORACLE_SID=DB_SID export ORACLE_HOME=[ORACLE_PATH] export TWO_TASK=[HOSTNAME:PORT] export PATH=$ORACLE_HOME/bin:$PATH sqlplus -

我在Ubuntu系统上的bash脚本有问题。我需要编写一个脚本,连接到甲骨文一个假脱机一些查询文本文件

几乎所有这些任务都已完成,但脚本并没有按应有的方式运行

要生成与oracle的连接,我在脚本中使用以下行:

su oracle
export ORACLE_SID=DB_SID
export ORACLE_HOME=[ORACLE_PATH]
export TWO_TASK=[HOSTNAME:PORT]
export PATH=$ORACLE_HOME/bin:$PATH
sqlplus -s usr/pass << EOF
user# sh MyScript.sh
从sqlplus断开连接

exit 
退出su oracle会话的步骤

EOF
在EOF标记之后,我放置了一些其他要执行的命令

问题是当我运行脚本时:

su oracle
export ORACLE_SID=DB_SID
export ORACLE_HOME=[ORACLE_PATH]
export TWO_TASK=[HOSTNAME:PORT]
export PATH=$ORACLE_HOME/bin:$PATH
sqlplus -s usr/pass << EOF
user# sh MyScript.sh

脚本不执行所有任务,只执行到点的行。最后,不必使用[su oracle]导出环境变量,因此我只是删除了该行:

su oracle
这个过程就像一个符咒


感谢所有帮助您的人。

尝试交换您的出口和EOF。你想让我之间的一切忘记提到这个MAtthew当我交换这些行时,它要求我su密码,当我输入工作密码时,它说这不是正确的密码,然后只执行EOF点之间的代码。su oracle在shell中正常工作吗,即不在脚本中工作时?是的,它工作正常。