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