Bash
zsh 中的別名和 bash 中的別名之間的區別
我四處搜尋,但找不到任何結論性的東西。zsh 中的 alias 命令和 bash 中的 alias 命令有區別嗎?如果不是,這是否意味著我可以在兩個 shell 之間共享一組別名並期望它們按我的預期工作?
根據Zsh Workshop Aliases,它們似乎具有相同的語法,因此它們應該可以工作。
該
alias
命令的語法在所有 Bourne 風格的 shell 中都是相同的。因此,只要它們在所有 shell 中都有意義,您就可以在~/.zshrc
、~/.bashrc
、~/.kshrc
、之間共享它們。~/.shrc
變數定義和函式定義也是如此,只要您使用所有 shell 都支持的語法子集。
如果您不使用早於 4.0 的 zsh 版本,則可以將所有與 shell 無關的定義放在一個名為 (say) 的文件中
~/.common.rc.sh
,其中第一行是emulate -LR sh 2>/dev/null
這告訴 zsh 只在這個文件中期望 sh 兼容的語法。
~/.bashrc
然後在,~/.bashrc
等開頭附近獲取該文件~/.kshrc
。這基本上就是我所做的。例如,我有一些複雜的程式碼,它會
ls
根據可用的選項(--color
、-G
、-F
等)為我最喜歡的選項生成別名;它與外殼無關,因此進入.common.rc.sh
. 我也有依賴於 shell 的別名,alias zcp='zmv -C'
就像.zshrc
.