shell脚本没有执行

时间:2009-10-17 23:38:50

标签: shell

我正在尝试在shell脚本中设置环境变量。命令“source .bashrc”未执行。只要输入终端中的最后一行,一切正常。我的剧本出了什么问题? THX。

echo "export CLASSPATH=.:$HOME/java/lib
export JAVA_HOME=$HOME/java
export PATH=.:$PATH:$JAVA_HOME/bin" >> .bashrc
source .bashrc

2 个答案:

答案 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