我的脚本末尾有以下内容:
export PATH=/usr/openwin/bin:/opt/plat/AUTOSYS/4.0/autosys/bin:/usr/kerberos/bin::/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin:/opt/netezzaClient/bin:/xenv/ant/X/1.8.0/bin:/export/opt/jdk/1.6.0_16/bin:$PATH
export JAVA_HOME=/export/opt/jdk/1.6.0_16
echo "END PATH - $PATH"
打印出来。
END PATH - /usr/openwin/bin:/opt/plat/AUTOSYS/4.0/autosys/bin:/usr/kerberos/bin::/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin:/opt/netezzaClient/bin:/xenv/ant/X/1.8.0/bin:/export/opt/jdk/1.6.0_16/bin:/opt/edtsesn/share/bin:/xenv/cvs/sun4/5.6p4/1.10/bin:/xenv/rationalrose/sun4/5.x/6.0.9242/rose/bin:/opt/netscape/4.70_B2/bin:/opt/SCssh/3.4_C0/bin:/opt/PDolvwm/bin:/usr/kerberos/bin:/bin:/usr/bin:/sbin:/usr/sbin:/usr/local/bin:/usr/X11R6/bin:/usr/ucb:/usr/bin:/usr/local/etc:/bin:/usr/local/bin:/etc:/software/scripts:/usr/5bin:/usr/demo:/usr/openwin/bin:/usr/tran/sparc/lib:/usr/ccs/bin:/opt/sybase/1192/bin:/tmp/wm40824:/opt/edtsdba/bin:/xenv/scripts/bin:/xenv/workshop/sun4/5.8mu4/6.1a/bin:/home/pj03962/1192/bin:/home/pj03962/1192/bin:/xenv/java/X/1.6.0_11/bin:/xenv/cvs/:/xenv/java/X/1.6.0_11/bin:/xenv/cvs/sun4/5.6p4/1.10/bin:/xenv/ant/sun4/5.x/1.6.2/bin:/opt/SCssh/3.7.1_C0/bin:/opt/xemacs/bin:/home/pj03962/125/OCS-12_5/bin:/home/pj03962/125/125/bin:/opt/perforce/bin:/opt/netezzaClient/bin:/opt/netezzaClient/bin
还
bash-3.00$ env $PATH
env: /usr/kerberos/bin:/bin:/usr/bin:/sbin:/usr/sbin:/usr/local/bin:/usr/X11R6/bin: No such file or directory
没有这样的文件,因为我的帐户不存在/ home / usr /文件夹。但是,这仍然没有说明为什么它没有将其他值添加到路径变量。
答案 0 :(得分:3)
我猜你在没有采购的情况下调用了你的脚本。 例如,如果您的脚本名为“myscript.sh”,则可能调用了“./myscript.sh”或“bash myscript.sh”。您对脚本中的env var的修改不会泄漏到脚本中,您需要对其进行源代码(首先使用'source'或'。'调用它)。 例如:
. ./myscript.sh
myscript.sh中的更改将修改您当前的环境。
对于“env $ PATH”:我认为这是一个错误,因为你试图在“PATH”变量中运行命令。哪个不存在(/ usr / kerberos / bin:/ bin:...不是系统中现有文件的名称!)。 您应该使用:echo $ PATH