Oracle bash:export:`CLASSPATH':不是有效的标识符

时间:2017-07-31 22:58:05

标签: bash oracle

# 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

此代码返回 bash:export:`CLASSPATH':不是有效的标识符

我尝试在oracle linux 6.0中安装oracle 11.2.0 g

使用bash -x return

[oracle@localhost ~]$ 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详细信息详细信息详细信息详细信息详细信息详细信息详细信息详细信息详细信息

1 个答案:

答案 0 :(得分:6)

以下是set -x输出的相关部分:

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

看来,无论出于何种原因,您在文件末尾都有一个不可见的unicode字节顺序标记。

使用其他编辑器显示此类字符和/或删除它。例如,在Vim中,它将显示为蓝色<feff>,可以像任何其他角色一样删除。

如果你没有一个好的编辑器,可以用Bash中的GNU sed删除它:

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