2017-07-31 106 views
-1
# Get the aliases and functions 
if [ -f ~/.bashrc ]; then 
    . ~/.bashrc 
fi 

# User specific environment and startup programs 

PATH=$PATH:$HOME/bin 

export PATH 

ORACLE_HOSTNAME=localhost.localdomain; export ORACLE_HOSTNAME 
ORACLE_UNQNAME=orcl; export ORACLE_UNQNAME 
ORACLE_BASE=/u01/app/oracle; export ORACLE_BASE 
ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1; export ORACLE_HOME 
ORACLE_SID=orcl; export ORACLE_SID 

PATH=$ORACLE_HOME/bin:$PATH; export PATH 

LD_LIBRARY=$ORACLE_HOME/lib:/lib:/usr/lib; export LD_LIBRARY 
CLASSPATH=$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib; export CLASSPATH 

此代碼返回 慶典:出口:`CLASSPATH':不是一個有效的標識符甲骨文的bash:出口:`CLASSPATH ':不是一個有效的標識符

我嘗試安裝Oracle 11.2.0克甲骨文在linux 6.0

使用bash -x返回

[[email protected] ~]$ bash -x .bash_profile 
+ '[' -f /home/oracle/.bashrc ']' 
+ . /home/oracle/.bashrc 
++ '[' -f /etc/bashrc ']' 
++ . /etc/bashrc 
+++ '[' '' ']' 
+++ shopt -q login_shell 
+++ '[' 500 -gt 199 ']' 
++++ /usr/bin/id -gn 
++++ /usr/bin/id -un 
+++ '[' oracle = oracle ']' 
+++ umask 002 
+++ for i in '/etc/profile.d/*.sh' 
+++ '[' -r /etc/profile.d/colorls.sh ']' 
+++ '[' '' ']' 
+++ . /etc/profile.d/colorls.sh 
+++ for i in '/etc/profile.d/*.sh' 
+++ '[' -r /etc/profile.d/cvs.sh ']' 
+++ '[' '' ']' 
+++ . /etc/profile.d/cvs.sh 
+++ for i in '/etc/profile.d/*.sh' 
+++ '[' -r /etc/profile.d/glib2.sh ']' 
+++ '[' '' ']' 
+++ . /etc/profile.d/glib2.sh 
+++ for i in '/etc/profile.d/*.sh' 
+++ '[' -r /etc/profile.d/gnome-ssh-askpass.sh ']' 
+++ '[' '' ']' 
+++ . /etc/profile.d/gnome-ssh-askpass.sh 
+++ for i in '/etc/profile.d/*.sh' 
+++ '[' -r /etc/profile.d/lang.sh ']' 
+++ '[' '' ']' 
+++ . /etc/profile.d/lang.sh 
+++ for i in '/etc/profile.d/*.sh' 
+++ '[' -r /etc/profile.d/less.sh ']' 
+++ '[' '' ']' 
+++ . /etc/profile.d/less.sh 
+++ for i in '/etc/profile.d/*.sh' 
+++ '[' -r /etc/profile.d/qt.sh ']' 
+++ '[' '' ']' 
+++ . /etc/profile.d/qt.sh 
+++ for i in '/etc/profile.d/*.sh' 
+++ '[' -r /etc/profile.d/udisks-bash-completion.sh ']' 
+++ '[' '' ']' 
+++ . /etc/profile.d/udisks-bash-completion.sh 
+++ for i in '/etc/profile.d/*.sh' 
+++ '[' -r /etc/profile.d/vim.sh ']' 
+++ '[' '' ']' 
+++ . /etc/profile.d/vim.sh 
+++ for i in '/etc/profile.d/*.sh' 
+++ '[' -r /etc/profile.d/which2.sh ']' 
+++ '[' '' ']' 
+++ . /etc/profile.d/which2.sh 
+++ unset i 
+++ unset pathmunge 
+ PATH=/u01/app/oracle/product/11.2.0/db_1/bin:/u01/app/oracle/product/11.2.0/db_1/bin:/u01/app/oracle/product/11.2.0/db_1/bin:/u01/app/oracle/product/11.2.0/db_1/bin:/usr/lib64/qt-3.3/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/oracle/bin:/home/oracle/bin:/home/oracle/bin:/home/oracle/bin:/home/oracle/bin:/home/oracle/bin 
+ export PATH 
+ ORACLE_HOSTNAME=localhost.localdomain 
+ export ORACLE_HOSTNAME 
+ ORACLE_UNQNAME=orcl 
+ export ORACLE_UNQNAME 
+ ORACLE_BASE=/u01/app/oracle 
+ export ORACLE_BASE 
+ ORACLE_HOME=/u01/app/oracle/product/11.2.0/db_1 
+ export ORACLE_HOME 
+ ORACLE_SID=orcl 
+ export ORACLE_SID 
+ PATH=/u01/app/oracle/product/11.2.0/db_1/bin:/u01/app/oracle/product/11.2.0/db_1/bin:/u01/app/oracle/product/11.2.0/db_1/bin:/u01/app/oracle/product/11.2.0/db_1/bin:/u01/app/oracle/product/11.2.0/db_1/bin:/usr/lib64/qt-3.3/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/oracle/bin:/home/oracle/bin:/home/oracle/bin:/home/oracle/bin:/home/oracle/bin:/home/oracle/bin 
+ export PATH 
+ LD_LIBRARY=/u01/app/oracle/product/11.2.0/db_1/lib:/lib:/usr/lib 
+ export LD_LIBRARY 
+ CLASSPATH=/u01/app/oracle/product/11.2.0/db_1/jlib:/u01/app/oracle/product/11.2.0/db_1/rdbms/jlib 
+ export $'CLASSPATH\357\273\277' 
.bash_profile: line 22: export: `CLASSPATH': not a valid identifier 

bash的-x在終端返回上面這段代碼,在22行,我使用Oracle的Linux 6.0和Oracle 11.2.0g詳細詳細詳細詳細詳細詳細詳細詳細詳細詳細詳細詳細詳細細節

+0

與運行腳本'bash的-x yourscript'所以它會爲他們打印命令'重新執行,並將結果寫入問題。可能在'CLASSPATH'旁邊有一個隱藏的字符,所以它實際上試圖導出類似'CLASSPATH $'\ r'' –

+0

的順序,片段支持用於可以在Web瀏覽器內運行的代碼 - 使用'{}編輯器中的'按鈕來語法高亮顯示其他語言。 –

+0

(...另一方面,一個給定的變量只需要導出一次 - 將來的變化將被自動複製到環境中 - 並且對於shell初始化腳本,PATH是*在您的shell啓動之前*已經*導出;'一遍又一遍地導出'是不需要的)。 –

回答

6

這是你的set -x輸出的相關部分:

+ export $'CLASSPATH\357\273\277' 

似乎無論出於什麼原因,在文件末尾都有一個不可見的Unicode字節順序標記。

使用其他編輯器將顯示此類字符和/或讓您刪除它。例如,在Vim中,它將顯示爲藍色<feff>,可以像其他任何字符一樣刪除它。

如果你沒有一個好的編輯器可用,則可以用GNU從猛砸sed的刪除:

sed -i $'s/\357\273\277//g' yourfile 
+0

謝謝男士回答 – checkmate