Sourcetree允许我们启动.sh脚本,称为自定义操作。我打算用。注册.sh文件,用Sublime文本打开文件。在做之前,我做了一个测试,发现有些东西很奇怪。 Sourcetree启动器的拥有者是你好,Bash shell的拥有者也是你好的:
choegyutaes-MacBook-Pro:MacOS hello$ pwd
/Applications/SourceTree.app/Contents/MacOS
choegyutaes-MacBook-Pro:MacOS hello$ ls -al
total 6752
drwxr-xr-x@ 3 hello admin 102 Feb 4 2015 .
drwxr-xr-x@ 10 hello admin 340 Aug 9 00:46 ..
-rwxr-xr-x@ 1 hello admin 3456064 Feb 4 2015 SourceTree
但Sourcetree脚本启动程序没有〜/ .bash_profile的导出PATH。
choegyutaes-MacBook-Pro:scripts hello$ cat ~/.bash_profile
#MAVEN
export M2_HOME=/usr/bin/apache-maven-3.3.3
export M2=$M2_HOME/bin
export PATH=$M2:$PATH
#Mysql
export MYSQL=/usr/local/mysql/bin
export PATH=$MYSQL:$PATH
#bash history timestamp
export HISTTIMEFORMAT="%d/%m/%y %T "
#Sublime text
export SUBLIME=/Applications/Sublime\ Text.app/Contents/SharedSupport/bin
export PATH=$SUBLIME:$PATH
我的shell脚本(sublime.sh)
#!/bin/bash
whoami
echo $PATH
sleep 3
来自Bash shell的lanuch脚本(iTerm)
choegyutaes-MacBook-Pro:scripts hello$ ./sublime.sh
hello
/Applications/Sublime Text.app/Contents/SharedSupport/bin:/usr/local/mysql/bin:/usr/bin/apache-maven-3.3.3/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
如你所知,echo $ PATH的结果是不同的,但是whoami的结果是一样的。我认为这对Sourcetree来说不是问题。它源于我对* nix系统和环境变量的不满。为什么Sourcetree脚本启动程序不知道Sublime文本的路径?
答案 0 :(得分:0)
.bash_profile只是用于在终端中运行bash shell。
您可能正在从快捷方式或菜单运行SourceTree。
如果从bash提示符运行SourceTree,您应该会发现它获取环境集并通过.bash_profile导出。
假设就是这样,那么你需要你的捷径或菜单才能拥有相同的东西 - 我不知道OS-X - 但必须有一些方法为整个用户上下文设置环境(即任何进程)从用户会话开始,从菜单或bash shell开始,或其他任何东西。)