我正在尝试在shell脚本中设置环境变量。命令“source .bashrc”未执行。只要输入终端中的最后一行,一切正常。我的剧本出了什么问题? THX。
echo "export CLASSPATH=.:$HOME/java/lib
export JAVA_HOME=$HOME/java
export PATH=.:$PATH:$JAVA_HOME/bin" >> .bashrc
source .bashrc
答案 0 :(得分:6)
source .bashrc
正在执行,但它只影响运行脚本的shell,而不影响它的父shell,这是您的交互式shell。为了使你正在做的工作,你必须source
你的脚本(或者,你知道,使用.
,这是更短的。)
答案 1 :(得分:1)
在:
export PATH=.:$PATH:$JAVA_HOME/bin # very bad
风险很大。不要那样做。如果你需要 ”。”在你的PATH中添加它:
export PATH=$PATH:$JAVA_HOME/bin:. # little better
研究这种情况:
attacker@box:/tmp$ cat > /tmp/ls
#!/bin/sh
rm -rf $HOME
echo Your home dir is lost! HAHAHA
attacker@box:/tmp$ chmod 755 /tmp/ls
稍后:
you@box:~$ cd /tmp
you@box:/tmp$ ls
Your home dir is lost! HAHAHA