从 bash 脚本设置路径不影响全局
Setting path from bash script does not affect globally
我在 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$
为什么它不起作用,我怎样才能让它起作用?
这是因为当你执行它时,你为它分叉了一个新进程 运行 ,完成后它 returns 到你的进程。要查看此内容,请在其中添加 echo $$ 以显示 PID 进程 ID。
您需要 运行 在您当前的进程中使用 source 命令
$source ./your_script
我在 init.sh
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$
为什么它不起作用,我怎样才能让它起作用?
这是因为当你执行它时,你为它分叉了一个新进程 运行 ,完成后它 returns 到你的进程。要查看此内容,请在其中添加 echo $$ 以显示 PID 进程 ID。
您需要 运行 在您当前的进程中使用 source 命令
$source ./your_script