Zsh

是否可以在 zsh 的配置文件中包含文件?如何?

  • June 24, 2020

我想要一個文件,例如。f只有 zsh 別名(純粹的原因)。然後我想在我的*.zshrc文件中包含f文件,以便在f中定義的別名在.zshrc*中可見。

可能嗎?

如果是,我可以創建一個腳本,例如。my_alias( $my_alias ll 'ls -l') 將別名附加到f文件。我當然可以

$echo {alias command} >> ~/.zshrc

但這使*.zshrc*變得一團糟。

此外,它在 bash 中的外觀如何?

更新

如果有人分享我的想法,這是解決方案,感謝 phunehehe:

# source aliases
ALIASFILE=~/.aliasesrc
source $ALIASFILE
function add_alias() {
   if [[ -z $1 || -z $2 || $# -gt 2 ]]; then
       echo usage:
       echo "\t\$$0 ll 'ls -l'"
   else
       echo "alias $1='$2'" >> $ALIASFILE
       echo "alias ADDED to $ALIASFILE"
   fi
}

.zshrc並且.bashrc是腳本文件,而不是配置文件,因此您“獲取”別名文件。在 Zsh ( .zshrc) 和 Bash ( .bashrc) 中:

. my_alias

將在與 RC 文件相同的環境中執行my_alias並保留其效果,從而有效地為您提供 shell 中的別名。當然,您也不限於別名。我使用.shrc兩者都來源的a.bashrc以及.zshrc常見的導出、函式和別名。

有關採購的更多資訊,請參閱執行 shell 腳本的不同方法

這就是我在 .zshrc 中的操作方式:

if [ -f ~/.zsh/zshalias ]; then
   source ~/.zsh/zshalias
else
   print "404: ~/.zsh/zshalias not found."
fi

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