从bash脚本设置路径不会影响全局

时间:2015-03-14 13:35:51

标签: bash ubuntu path

我在init.sh

中有这个shell脚本
echo "hello";
export ANDROID_HOME=/home/sadaf2605/adt-bundle-linux-x86-20140702/sdk;
export PATH=${PATH}:/home/sadaf2605/adt-bundle-linux-x86-20140702/sdk/tools;
export PATH=${PATH}:/home/sadaf2605/adt-bundle-linux-x86-20140702/sdk/platform-tools
echo "end"
echo $PATH

打印出来了:

sadaf2605@sadaf-pc:~/Estimator-cordova$ ./init.sh
hello
end
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/home/sadaf2605/adt-bundle-linux-x86-20140702/sdk/tools:/home/sadaf2605/adt-bundle-linux-x86-20140702/sdk/platform-tools

看起来不错,我知道,但是当我回复$ Path时,我什么也没做到:

sadaf2605@sadaf-pc:~/Estimator-cordova$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
sadaf2605@sadaf-pc:~/Estimator-cordova$ 

为什么它不起作用,我怎样才能使它发挥作用?

1 个答案:

答案 0 :(得分:2)

它是因为当你执行它时,你会为它运行一个新进程,它会在完成后返回到你的进程。为了看到这个,在它中放入一个echo $$来显示PID进程ID。

您需要在当前进程中运行它才能使用源命令

 $source ./your_script