【问题标题】:Git Bash: Launch Application via Alias without hanging Bash (WIndows)Git Bash:通过别名启动应用程序而不挂起 Bash(Windows)
【发布时间】:2010-08-20 03:37:41
【问题描述】:

我在 Windows 上的 Git Bash 中创建了几个 bash 别名,用于从 bash shell 启动可执行文件。

我遇到的问题是,似乎 bash 在开始再次响应输入之前正在等待退出代码,因为一旦我关闭它启动的应用程序,它就会再次开始接受命令。

我可以在别名中包含一个开关或其他东西,以便 bash 不等待退出代码吗?

我正在寻找这样的东西......

alias np=notepad.exe --exit

【问题讨论】:

  • 你试过用 & 运行它吗?所以不要做 > notepad.exe > notepad.exe &

标签: git bash


【解决方案1】:

我确认 George 在 cmets 中提到的内容:

使用“&”启动您的别名可以让您无需等待返回码即可继续操作。

与:

alias npp='notepad.exe&'

您甚至不必输入“&”。


但为了包含参数,我建议将脚本(而不是别名)放在路径中的任何位置,在名为“npp”的文件中:

/c/WINDOWS/system32/notepad.exe $1 &

将允许您使用“npp anyFile”打开任何文件(不需要“&”),而无需等待返回码。

这样的脚本:

for file in $*
do
  /c/WINDOWS/system32/notepad.exe $file &
done

将启动多个编辑器,参数中每个文件一个:

npp anyFile1 anyFile2 anyFile3

会允许你

【讨论】:

  • 是的,我明白了,但是如果我想执行记事本打开文件而不等待返回码怎么办?
【解决方案2】:

按照带有 & 符号 (&) 的命令在后台运行它。

【讨论】:

  • 是否可以在别名中包含 & ?比如我想这样做.... alias np='notepad.exe $*&',其中$*是使用别名时指定的参数...(要打开的文件名)。
  • 如果您直接编辑 git 配置文件 (.git/config)(在 alias 部分中),您可能可以在此处添加 &。 (您不能从命令行添加它,因为它将被解释为设置别名的命令的一部分,而不是别名本身的一部分。)
【解决方案3】:

我结合了 VonC 的解决方案和这个 https://stackoverflow.com/a/7131683/1020871 来获得一个别名,该别名可以启动可执行文件并传递参数而不锁定 git bash。将以下内容添加到 .bashrc:

npp() {
    notepad++.exe $* &
}

startGitk() {
    gitk $* &
}
alias gitk=startGitk

现在我可以使用 gitk test -- .gitignore 等自定义参数打开多个文件 notepad++,如 npp .gitignore build.gradle 或 gitk。

我有一个与 gitk 类似的 npp 别名,但发现我可以直接调用该函数。我也可以调用 startGitk,但是当我将它命名为 gitk 时它不起作用。

【讨论】:

    猜你喜欢
    • 2015-09-04
    • 2011-09-22
    • 1970-01-01
    • 1970-01-01
    • 2016-11-19
    • 2017-11-10
    • 2016-10-09
    • 2022-11-10
    • 1970-01-01
    相关资源
    最近更新 更多