Kzq*_*qai 3 shell terminal job-control alias disown
当我gedit从命令行提交文件时,它总是锁定终端,而且我厌倦了为它明确命令一个分离的进程。
我尝试将别名设置gedit为类似gedit $* & disown,但要么这不是正确的语法,要么不允许您使用别名重载可执行的二进制命令(尝试在 .bash_aliases 函数中使用它,
alias gedit=editorz
function editorz()
{
gedit $* & disown
}
Run Code Online (Sandbox Code Playgroud)
),但不需要。
那么如何使命令gedit test.txt不锁定原始终端窗口?
这应该有效:你确定你.bash_aliases的阅读?(它不是标准文件,但它可能来自您的~/.bashrc. 如果您对.bashrcand感到困惑.bash_profile,请参阅.bashrc 和 .bash_profile 之间的区别。)
您的函数中有一个错误:应该是
editorz () {
gedit "$@" & disown
}
Run Code Online (Sandbox Code Playgroud)
您的版本不适用于包含空格或 shell 通配符的文件名。该function关键字是可选的。
您可以调用该函数gedit(并完全省去别名),但是您需要告诉 shell 函数内部的调用是对命令而不是函数的调用:
gedit () {
command gedit "$@" & disown
}
Run Code Online (Sandbox Code Playgroud)
请注意,如果您不小心在前台启动了 gedit(即锁定了您的终端),您可以通过在终端中按Ctrl+Z并输入命令将其置于后台bg。