0
我在Ubuntu系统上遇到了bash脚本的问题。我需要编写一个连接到oracle的脚本,将一些查询翻译成文本文件。运行脚本时退出oracle用户会话
几乎所有这些任务都已完成,但脚本并未按原样运行。
要生成到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
在后续行我做了数据,最后从SQLPLUS我用下面的行退出所有后台:
quit;
从sqlplus中
exit
diconnect要从su oracle会话中退出
EOF
而且在EOF标签之后,我放了一些其他要执行的命令。
问题是,当我运行我的脚本:
user# sh MyScript.sh
而不是做所有的任务,脚本只执行行至< < EOF和回报的角度给我的终端的控制仍然以oracle用户身份登录。
[email protected]#
如果我输入'exit'并按回车,脚本的其余部分就会执行。
我需要脚本执行从开始到结束没有这个中间步骤,但我不知道如何。
在此先感谢。
尝试交换您的'exit'和'EOF'。你希望''EOF'和'EOF'之间的所有内容都是SQLPlus的命令,但是exit是一个shell命令。 – 2014-10-08 22:06:26
忘记提到这MAtthew当我交换这些行然后它要求我的su密码,当输入密码我有工作它说它不是正确的密码,然后只执行EOF点之间的代码。 – Cabrakan 2014-10-08 22:20:25
在shell中,'su oracle'是否正常工作(即不在脚本中)? – 2014-10-09 08:20:40