Bash
在 .bash_profile 中組合兩個命令
在我的
.bash_profile
文件中,我想設置一個命令別名,即兩個命令一個接一個地執行。第一個命令從命令行獲取一個參數,第二個實際上是腳本(位於~/bin
具有執行權限的位置)。我的個人資料文件有這個:
alias pd='function pd2() { pushd "$@"; set_title_tab; }'
我嘗試像這樣在 shell 中執行它:
$ pd ~/Documents/
我得到一個錯誤:
-bash:意外標記 `~/Documents/’ 附近的語法錯誤
set_title_tab
是William Scott 編寫的 shell 腳本有沒有更好的方法來實現這一點?
別名不支持輸入參數,也不需要將函式包裝在別名中。只需使用一個函式:
pd() { pushd "$@" set_title_tab } pd ~/Documents
為什麼不這樣:
pd () { pushd "$@"; set_title_tab; }
您現在擁有的是別名中的函式定義,這是……不尋常的。一旦你定義了一個函式(就像我在
pd
上面所做的那樣),你就可以像使用任何其他命令一樣使用它。