Linux bashshell中环境变量路径的设置

Linux bashshell中环境变量路径的设置,linux,bash,unix,environment-variables,Linux,Bash,Unix,Environment Variables,与QA相比,PROD中的环境路径要大得多: PATH=.:/home/imc:/home/imc/bin:$HOME:/usr/local/sbin:$PATH 我们在PROD和QA中使用相同的安装环境文件,但我们仍然发现了差异 较长的路径意味着它会在运行作业时生效。那么,您知道如何改进路径吗?确保QA和PROD在其.bashrc中对路径使用相同的赋值语句,并且不要引用$PATH。这样,无论在之前执行了哪些其他启动文件,都可以保证路径相同。bashrc用于修改路径。例如 # Assign a

与QA相比,PROD中的环境路径要大得多:

PATH=.:/home/imc:/home/imc/bin:$HOME:/usr/local/sbin:$PATH
我们在PROD和QA中使用相同的安装环境文件,但我们仍然发现了差异


较长的路径意味着它会在运行作业时生效。那么,您知道如何改进路径吗?

确保QA和PROD在其
.bashrc
中对路径使用相同的赋值语句,并且不要引用
$PATH
。这样,无论在
之前执行了哪些其他启动文件,都可以保证路径相同。bashrc
用于修改
路径。例如

# Assign a short and sweet PATH.
PATH=$(/usr/bin/getconf PATH):$HOME/bin:/usr/local/sbin

请注意,出于安全原因,将
放置在
路径中是一个boo-boo。另一方面,
PATH
中的目录数量很可能不会影响脚本的速度。Bash保留实用程序位置的散列,并且查找持续时间离恒定时间不远。

以这种方式设置PATH只会将一些值前置到现有值。因此,在运行安装文件之前,您需要检查路径设置的位置。您好,jens,谢谢您的回复,但是当我使用echo$PATH命令时,它显示了另一个不同的路径。然后您没有使用相同的启动文件。将
echo放在
.bashrc
.profile
中的
语句中,以验证哪个语句正在运行。另一个原因可能是PROD和QA使用不同的Linux系统。在这两种情况下,
uname-a
输出什么?Linux tryprimpfapp1.intra.searshc.com 2.6.18-194.17.4.el5xen#1 SMP Wed Oct 20 13:11:50 EDT 2010 x86_64 x86_64_64 GNU/LinuxAny chance PROD和QA使用不同的shell?(比如,ksh,zsh,pdksh,ash)?echo$SHELL对PROD和QA说了什么?对PROD和QA说同样的话