Shell
用於重定向標準輸出和標準錯誤以及發送到後台的別名
我正在嘗試創建一個
alias
用於將標準輸出和標準錯誤重定向gedit
到的/dev/null
,同時將命令發送到後台。這有效:
$ alias gedit='gedit $1 > /dev/null 2>&1' $ gedit file.txt &
但是,將後台指令添加
&
到alias
字元串中不起作用,因為它會立即被解釋:$ alias gedit='gedit $1 > /dev/null 2>&1 &' [1]+ Done gedit > /dev/null 2>&1
我應該如何將此
&
後台指令添加到alias
命令中?
我不認為您可以使用 . 來做到這一點
alias
,但您可以使用 Bash 中的功能。$ gedit() { command gedit "$@" > /dev/null 2>&1 & }
例子
$ gedit file.txt [1] 24057 $
細節
該函式使用 Bash 的
command
命令。這將呼叫具有給定名稱的實際執行檔,而不是呼叫任何已經存在的別名或函式。我選擇使用$@
它將為您提供所有傳遞的命令行參數,而不僅僅是第一個 with$1
。