如何配置Console2 / Git Bash以在不同的选项卡中运行不同的脚本?

时间:2011-09-08 08:39:39

标签: git bash console2

首先,我对可能不正确的术语道歉。我是从Windows背景来看这个,只有Windows和DOS知识来表达我的需求。

背景

我正在使用Console2在两个不同的标签中运行Git Bash。

这些选项卡设置为在不同的工作目录中启动,以便默认使用2个不同的存储库。

我创建了一堆别名来简化我使用GIT的方式。 这些目前驻留在我的用户文件夹中的.bash_profile中。

.bash_profile似乎是旧的DOS autoexec.bat文件的linux等价物。因此,我的别名是为启动git sh.exe的任何选项卡设置的。

我被告知如果我把hg.exe(mercurial)放在路径上,那么我就能用这种方式同时使用hg和Git。 事实证明这是正确的。

我的目标是什么

我希望能够配置不同的选项卡以使用不同的别名。

在这个特定的情况下,我希望能够设置一个仍然运行Git Bash(sh.exe)的HG选项卡,但它会初始化一组不同的别名。

我相信我需要

  • 为每组别名创建不同的“bat文件”。
  • 将Console2配置为使用不同的“bat文件”作为不同选项卡的autoexec。

问题

如何调整设置Console2标签(当前启动sh.exe),以便它传递“命令”文件的名称以便在启动时运行?

4 个答案:

答案 0 :(得分:0)

您可以将脚本名称传递给bash.exe,然后运行它。请记住,虽然bash期望路径是UNIX风格的 - 例如,而不是C:\temp\myscript.sh,它会像/cygdrive/c/temp/myscript.sh那样希望它。

有关调用bash in the bash manual的更多信息。

(如果需要,可以使用cygpath.exe自动执行此翻译。我有一个example on my blog。)

更新听起来好像要使用--init-file--rcfile并在那里指定启动命令。

答案 1 :(得分:0)

使IMHO更有意义地编写别名,以便它们在不同的环境中表现不同。行为选择器可以是当前目录的名称,也可以是当前目录中是否存在标志文件;别名或脚本文件可以包含此代码,或者启动脚本可以提供不同的文件,或者只是根据选择器设置不同的PATH。

像这样;在.bashrc中添加

test -e .git && . ~/bin/gitalises.sh
test -e .hg && . ~/bin/hgaliases.sh

或者像这样;

test -e .git && PATH=~/bin/git:$PATH   # put co for git in ~/bin/git/co
test -e .hg && PATH=~/bin/hg:$PATH     # and ditto for ~/bin/hg/co

或者像这样;

test -e .git && VC=git

然后在命令行上,您可以随时设置VC=hg,前提是您的脚本(或别名;但我建议使用函数或脚本)看起来像

case $VC in
  git) git --gobble=gook "$@";;
  hg) hg bbq a/c "$@";;
  *) echo "err um uh" >&2 ;;
esac

这还取决于您在别名中共享的代码数量;某些内容的hg别名与某些内容的git别名有什么不同?然后分开维护它们。或者将共享代码封装在两者使用的公共源文件中。

答案 2 :(得分:0)

以下适用于我使用Console2。它在我的cygwin $ HOME目录中使用Cygwin的bash shell和.bash_profile。

<path_to_cygwin>\bin\bash.exe --login -i -c "cd /cygdrive/c/Cygwin/home/<username>; exec /bin/bash --init-file .bash_profile

只需将.bash_profile替换为shell启动时要提供的文件(显然使用您自己的用户名和路径)。

答案 3 :(得分:0)

使用console2作为选项卡的包装器。这是article for setting up