【问题标题】:Setting path from bash script does not affect globally从 bash 脚本设置路径不会影响全局
【发布时间】:2015-05-16 22:59:29
【问题描述】:

我在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$ 

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

【问题讨论】:

    标签: bash ubuntu path


    【解决方案1】:

    这是因为当您执行它时,您会派生一个新进程以供其运行,完成后它会返回到您的进程。要看到这一点,请在其中放置一个 echo $$ 以显示 PID 进程 ID。

    您需要在当前进程中运行它才能使用 source 命令执行此操作

     $source ./your_script
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多