当我gedit
从命令行文件时,它总是锁定终端,并且我厌倦了为其显式命令一个分离的进程。
我尝试将别名设置gedit
为类似的名称gedit $* & disown
,但这要么不是正确的语法,要么不允许您使用别名重载可执行二进制命令(尝试在 .bash_aliases 函数中使用它,
alias gedit=editorz
function editorz()
{
gedit $* & disown
}
),但不需要。
那么如何使该命令gedit test.txt
不锁定原始终端窗口呢?
答案1
这应该有效:你确定你的内容.bash_aliases
已被阅读吗? (这不是标准文件,但它可能来自您的~/.bashrc
。如果您对.bashrc
和感到困惑.bash_profile
,请参阅.bashrc 和 .bash_profile 之间的区别.)
你的函数有一个错误:它应该是
editorz () {
gedit "$@" & disown
}
您的版本不适用于包含空格或 shell 通配符的文件名。关键字function
是可选的。
您可以调用该函数gedit
(并且完全省去别名),但是您需要告诉 shell 函数内部的调用是对命令的调用,而不是对函数的调用:
gedit () {
command gedit "$@" & disown
}
请注意,如果您不小心在前台启动了 gedit(即锁定终端),您可以通过在终端中按Ctrl+Z并输入命令将其置于后台bg
。
答案2
确保 是function editorz()
在别名之前定义的。
我已经尝试过你的方法并且没有问题。
答案3
gedit
从实用程序文件夹(而不是终端)打开解决了我的问题
答案4
只需添加以下别名:
alias gedit='gedit -b'
该-b
选项表示在后台运行