Oracle
oracle oraenv 腳本 bash
我想在腳本中執行相同的命令 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_HOME
不LD_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 字元較少)