инициализация файла во время входа в bash - PullRequest
1 голос
/ 04 октября 2019

Проблема:

У меня есть файл с именем: env.sh, который содержит некоторые переменные среды, и я хочу инициализировать этот файл во время входа в систему.

Я использую bash и после проверки на разных сайтах si попытался включить этот файл в мой ~/.bash_profile, а также в ~/.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

, а мой .bash_profile содержит:

# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
        . ~/.bashrc
fi

if [ -f ~/env.sh ]
then
. ~/env.sh
fi

export LD_LIBRARY_PATH=/cs/python3/python/lib/
#export LD_LIBRARY_PATH=/usr/lib64/python3.6
export JAVA_HOME=/cs/ctc/jre-server/linux/jdk1.8.0_202/jre/bin
#PATH=/cs/python3/python/bin:$PATH:$HOME/.local/bin:$HOME/bin
#================================================
#Informatica 1011 related env variables
#================================================
#export INFA_HOME=/cs/informatica/software/CS_InformaticaCLULin-10.1.1-1.x86_64/PowerCenter
#export INFA_DOMAINS_FILE=/cs/informatica/software/CS_InformaticaCLULin-10.1.1-1.x86_64/PowerCenter/domains.infa
#===============================================
export ORACLE_HOME=/cs/oracle/product/11204/client_1
export PATH=/cs/ctc:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/opt/puppetlabs/bin:/cs/oracle/product/11204/client_1/lib:/cs/oracle/product/11204/client_1/bin
export TNS_ADMIN=/cs/oracle/product/11204/client_1
PATH=$PATH:/cs/ctc/jre-server/linux/jdk1.8.0_202/bin
export PATH

Любая помощь приветствуется !!!

1 Ответ

1 голос
/ 04 октября 2019

Материал после вашего источника env.sh отменяет многие вещи, которые он пытался инициализировать. Если вы не хотите заменять LD_LIBRARY_PATH, который он создал и т. Д., Переместите источник env.sh на то, что указано в .bash_profile.

. Код в env.sh обычно работает лучшесохранения любых более ранних настроек. Например, он расширяет существующее значение LD_LIBRARY_PATH, добавляя материал к старому значению, вместо того, чтобы просто заменить его статическим значением.

LD_LIBRARY_PATH=new_stuff:$LD_LIBRARY_PATH

вместо

LD_LIBRARY_PATH=new_stuff
...