Shell

從命令行呼叫 gedit 時,如何將 gedit something & disown 的行為轉變為預設行為?

  • February 2, 2016

當我gedit從命令行送出文件時,它總是鎖定終端,我厭倦了為它顯式命令一個分離的程序。

我嘗試將別名命名geditgedit $* & disown,但要麼這不是正確的語法,要麼不允許您使用別名重載可執行二進制命令(嘗試在 .bash_aliases 函式中使用它,

alias gedit=editorz

function editorz()
{
 gedit $* & disown
}

),但它不需要。

那麼如何使命令gedit test.txt不鎖定原始終端視窗?

這應該有效:您確定您的.bash_aliases已閱讀嗎?(它不是標准文件,但它可能來自您的~/.bashrc. 如果您對.bashrcand感到困惑.bash_profile,請參閱.bashrc 和 .bash_profile 之間的區別。)

你的函式中有一個錯誤:它應該是

editorz () {
 gedit "$@" & disown
}

您的版本不適用於包含空格或 shell 萬用字元的文件名。function關鍵字是可選的。

您可以呼叫該函式gedit(並完全省去別名),但是您需要告訴 shell 函式內部的呼叫是對命令而不是對函式的呼叫:

gedit () {
 command gedit "$@" & disown
}

請注意,如果您不小心在前台啟動了 gedit(即鎖定您的終端),您可以通過在終端中按Ctrl+Z並輸入 command將其置於後台bg

引用自:https://unix.stackexchange.com/questions/6063