Alias
“emacs /usr/local/nagios/etc/objects”的別名
我正在嘗試使以下工作:
alias banana='emacs /usr/local/nagios/etc/objects/'
所以我只想輸入“banana firewall.cfg”來編輯這個文件(/usr/local/nagios/etc/objects/firewall.cfg)。如果我鍵入它,emacs 會打開兩個緩衝區,一個用於目錄編輯模式下的“/usr/local/nagios/etc/objects”,另一個作為名為 firewall.cfg 的空白第二個文件,這是預期的,顯然命令“bananafirewall.cfg”不起作用。
我已經撓頭整整 30 分鐘了。別名甚至是正確的命令嗎?我想我可以 ln -s 所有這些文件到 /root,但還有其他建議嗎?
別名適用於為命令提供另一個名稱,或用於傳遞預設參數。除此之外,它們並不好,例如修改參數。改用函式。
要輕鬆支持多個文件名,請先切換到目標目錄。使用括號而不是大括號來創建子 shell,以便目錄更改不會影響父 shell。
banana () ( cd /usr/local/nagios/etc/objects/ && emacs "$@" )
您可能想要使用這樣的 shell 函式:
banana () { emacs /usr/local/nagios/etc/objects/"$1"; }
僅適用於一個文件名。支持多個會使它變得更加複雜。