Oracle

oracle oraenv 腳本 bash

  • January 28, 2020

我想在腳本中執行相同的命令 shell CLi

沒有腳本的命令外殼 (CLI)

su - oracle
export ORAENV_ASK=NO
export ORACLE_SID=HRPRD
. oraenv
env | grep ora

輸出:

USER=oracle
**LD_LIBRARY_PATH**=/u01/pe/oracle/u/25/bas/lib
ORACLE_BASE=/u01/pe/oracle
MAIL=/var/spool/mail/oracle
PATH=/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/u01/pe/oracle/u/25/bas
PWD=/oracle
HOME=/oracle
LOGNAME=oracle
**ORACLE_HOME**=/u01/pe/oracle/u/25/bas/

我的劇本

rr=`su - oracle`
export ORAENV_ASK=NO
export ORACLE_SID=MySID
uu=`. oraenv`
searchOraHome= `env | grep ora`
echo $searchOraHome

輸出:

USER=oracle ORACLE_BASE=/u01/app/oracle 
PATH=/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/oracle/bin 
MAIL=/var/spool/mail/oracle PWD=/oracle HOME=/oracle LOGNAME=oracle

為什麼變數ORACLE_HOMELD_LIBRARY_PATH存在於腳本外殼中?

是行:

uu=`. oraenv`

… 不正確?



您必須使用“來源”腳本

. oraenv


沒有反引號。

看起來oraenv實際上並沒有成功執行。你確定它oraenv$PATH被呼叫時在腳本中嗎?

您可以oraenv通過執行檢查在哪裡:

which oraenv

從您的命令提示符。

假設您嘗試從 crontab 執行它,您可以$PATH通過添加以下內容來檢查該環境:

* * * * * env > /tmp/environment.txt

到你的 crontab,讓它執行,刪除 crontab 條目,然後檢查這個文件的內容。

(或* * * * * echo $PATH > /emp/path.txt- 但 env 字元較少)

引用自:https://dba.stackexchange.com/questions/258327