在bash中登录时的文件初始化

在bash中登录时的文件初始化,bash,environment-variables,Bash,Environment Variables,问题: 我有一个名为:env.sh的文件,其中包含一些环境变量,我希望在登录时初始化此文件 我正在使用bash,在检查了各种网站后,我试图将此文件包括在我的~/.bash\u配置文件以及~/.bashrc中: if [ -f ~/env.sh ]; then . ~/env.sh fi 在我注销并再次登录到系统后,它不起作用 以下是env.sh的内容: #!/bin/ksh ########################################################

问题:

我有一个名为:
env.sh
的文件,其中包含一些环境变量,我希望在登录时初始化此文件

我正在使用
bash
,在检查了各种网站后,我试图将此文件包括在我的
~/.bash\u配置文件以及
~/.bashrc
中:

if [ -f ~/env.sh ]; then
    . ~/env.sh
fi
在我注销并再次登录到系统后,它不起作用

以下是
env.sh
的内容:

#!/bin/ksh
#####################################################################
# General environment variable settings                             #
#####################################################################

#ulimit -c unlimited
#umask 000

export HOSTNAME=$(/bin/hostname)
export DOMAINNAME=$(egrep ^'(domain|search)' /etc/resolv.conf | awk '{print $2}' | head -1)
export OS_NAME=$(uname -s)
case "$OS_NAME" in
  SunOS)
        export OS_VENDOR="Sun"
        export OS_NAME="Solaris"
        export XTERM="/usr/openwin/bin/xterm"
        export USER=$LOGNAME
        ;;
  Linux)
        export OS_VENDOR="$(cd /etc; ls [Sr]*-release | sed -e 's/-release//')"
        export OS_NAME="Linux"
        export XTERM="/usr/bin/xterm"
        ;;
esac

export LC_ALL=C
export LC_TYPE=C

#####################################################################
# Informatica 1011 required environment variable settings           #
#####################################################################
export PC1011_HOME=/cs/informatica
export INF_HOME=$PC1011_HOME/software/CS_InformaticaCLULin-10.1.1-1.x86_64
export LANG=C
export PWRCENTER_DIR=$INF_HOME/PowerCenter
export PCSERVER_DIR=$PWRCENTER_DIR/server
export PCSERVER_BIN=$PCSERVER_DIR/bin
export EXTRA_LIB=$SOFTWARE_DIR/extras/lib
export INFA_HOME=$PWRCENTER_DIR
#####################################################################
# JAVA Settings (Bundled with PowerCenter)                          #
#####################################################################
export JAVA_HOME=$PWRCENTER_DIR/java/jre
export TOMCAT=$PWRCENTER_DIR/server/tomcat
export JBOSS_HOME=$TOMCAT/jboss
export PC1011_LOG=$TOMCAT/logs/node.log

#####################################################################
# Set the WAIT4STARTUP parameter to 15 seconds for a fast server    #
# and 45 seconds for a slow server. Wait before proceeding          #
#####################################################################
export PWRCENTER_WAIT4STARTUP=30

#####################################################################
# Oracle Client Settings                                            #
#####################################################################
#export ORACLE_HOME=/cs/oracle/product/12102/client_1
#export ORACLE_LIBS=$ORACLE_HOME/lib
#export TNS_ADMIN=$PC1011_HOME/software/extras/oracle/network/admin

#####################################################################
# Sybase Open Client Settings                                       #
#####################################################################
export SYBASE=/cs/sybase/open_client
export SYBFORMLIST=". ${SYBASE}"
export SYBASE_ASE=ASE-12_5
export SYBASE_OCS=OCS-15_0

# Define the default Sybase server
export DSQUERY='DEV'
export SYBASE_LIBS=$SYBASE/OCS-15_0/lib:$SYBASE/OCS-15_0/lib3p64:$SYBASE/OCS-15_0/lib3p

#####################################################################
# Sybase IQ Client Settings                                                #
#####################################################################

export SYBASEIQ=/app/sybase/iq_client/IQ-16_0
export SYBASEIQ_LIBS=$SYBASEIQ/lib64

####################################################################
# ODBC Driver Settings                                                    #
####################################################################

export ODBC_HOME=$PWRCENTER_DIR/ODBC7.1
export ODBCINI=$ODBC_HOME/odbc.ini

#####################################################################
# RainStor ODBC Driver Settings                                             #
#####################################################################

export ODBCSYSINI=$ODBC_HOME
#export SIMBAINI=/cs/rainstor/client/lib/RainStor-ODBC-4/simba.ini
#export OASDK_ODBC_HOME=/cs/rainstor/client/lib/RainStor-ODBC-4/lib64
export SIMBAINI=/cs/rainstor/client/lib/RainStor-ODBC-4/simba.ini
export OASDK_ODBC_HOME=/cs/rainstor/client/lib/RainStor-ODBC-4/lib64


#####################################################################
# DB2 Client Settings                                                       #
#####################################################################

export DB2=/cs/db2client/sqllib
#export DB2BIN=$DB2/bin
#export DB2LIB=$DB2/lib

####################################################################
# Following added by Jessie Mundrathi/Joel Shandelman on Dec 8 2004#
# for MQ Series. The Connection properties of the IBM MQSeries     #
# queue manager should be in the following format:                 #
# <Channel Name>/<Transport Type>/<Connection Name>                #
####################################################################

#export MQSERVER="USUDE1_SVRCONN/TCP/169.37.67.133(1421)"
#export LDR_CNTRL="MAXDATA=0x60000000"

#export MQCLIENTPATH=/cs/mqm_client_6.0.2.0/bin
#export MQCLIENTLIB=/cs/mqm_client_6.0.2.0/lib
#export MQCHLTAB=AMQCLCHL.TAB
#export MQCHLLIB=/var/mqm/exits

#####################################################################
# Set PATH and LD_LIBRARY_PATH                                      #
#####################################################################
export PATH=$JAVA_HOME/bin:$ODBC_HOME/bin:$SCRIPTS_DIR:$SCRIPTS_DIR/bin:$SYBASE/OCS-15_0/bin:$SYABSEIQ/bin64:$MM_HOME/bin/ssunos5:$TOMCAT/bin:$PCSERVER_DIR:$PCSERVER_BIN:$ORACLE_HOME/bin:/usr/local/bin:/usr/bin:/bin:/eqsw/mqm/samp/bin:/cs/mqm_client_6.0.2.0/bin:/cs/mqm_client_6.0.2.0/samp/bin:$DB2/bin:$PATH

export LD_LIBRARY_PATH=$JAVA_HOME/bin:$ODBC_HOME/lib:/cs/informatica/RainStor-ODBC-3/lib64:$SOFTWARE_DIR:$PCSERVER_BIN:$ORACLE_LIBS:$MM_HOME/lib/ssunos5:$SYBASE_LIBS:$SYBASEIQ_LIBS:$MQCLIENTLIB:$MQCLIENTPATH:/usr/lib64:$PCSERVER_LIB:$DB2/lib:$EXTRA_LIB

欢迎任何帮助

源代码
env.sh
之后的内容覆盖了它试图初始化的许多内容。如果您不想替换它创建的
LD\u库路径
,请将
env.sh
的源文件移动到
.bash\u配置文件中的内容之后

env.sh
中的代码通常能更好地保存任何早期的定制。例如,它扩展了
LD_LIBRARY_PATH
的现有值,向旧值添加内容,而不是直接用静态值替换它

LD_LIBRARY_PATH=new_stuff:$LD_LIBRARY_PATH
而不是

LD_LIBRARY_PATH=new_stuff

当您键入
echo$SHELL
时,输出是什么?@Mihir:它是:
/bin/bash
另外,将
~/env.sh
在两个位置都用双引号括起来,这样,如果路径包含空格,它就工作得很好。从
~/.bash\u profile
开始,这段代码对我来说工作得很好。我也在使用
bash
shell。你能再检查一下文件权限吗
~
扩展为
“$HOME”
,而不是
$HOME
。所以你在那里很安全。
LD_LIBRARY_PATH=new_stuff