我是 Windows 用户,我使用 Cygwin 作为我的终端。为了从终端运行 notepad++,我已将以下行添加到 ~/.bash_profile:
npp () {
/cygdrive/d/Notepad++/notepad++.exe $(cygpath -w -- "$@")
}
它成功了,所以接下来我需要一种方法在后台启动它,这样我就可以打开一个 npp++ 实例而不停止我的终端流。这有效:
npp foo &
但我不想手动引入该“&”符号,因此我尝试将此别名添加到 ~/.bash_profile:
alias npp="npp &"
现在:
npp foo
在后台工作。
问题是,使用 gnu/linux 命令时,您需要在参数后面写上“&”符号,否则它将不起作用。
这有效:
ls directory &
这不:
ls & directory
所以我想知道我在这里遗漏了什么,因为:
npp foo
当我设置时,它实际上在后台工作
alias npp="npp &"
当我评论它时它却没有。
答案1
以下命令在后台启动作为其单个参数ls
传递的可执行文件directory
,这就是您想要做的:
ls directory &
那个ls
在没有任何参数的情况下在后台启动,然后(试图)directory
在前台作为命令启动,这不是你想要做的:
ls & directory
使用alias
不会改变这种行为,除非cygwin
sh
具有我不知道的特定功能,对此我非常怀疑。