是否可以在zsh的配置文件中包含文件?怎么样?


22

我想要一个文件,例如。f仅具有zsh别名(出于纯正的原因)。然后,我想在.zshrc文件中包含f文件,以便在.zshrc中可见f中定义的别名。

可能吗?

如果是这样,我可以创建一个脚本,例如。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
}

Answers:


20

.zshrc并且.bashrc是脚本文件,而不是配置文件,因此您可以“获取”别名文件。在Zsh(.zshrc)和Bash(.bashrc)中类似:

. my_alias

my_alias在与RC文件相同的环境中运行并保持其效果,从而有效地为您提供shell中的别名。当然,您也不限于别名。我用的.shrc是由两个来源.bashrc.zshrc共同的出口,函数和别名。

有关采购的更多信息,请参见执行Shell脚本的不同方法


31

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

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

感谢您的正确回答,您和phunehehe是正确的,但只能批准一个答案,所以我决定将其交给phunehehe,因为他是第一位:)
xliiv 2012年

14

要获得一个文件中存在的文件,请执行以下操作:

[ -f .aliases ] && source .aliases

这对帕特的回答有何不同?
jasonwryan

1
一样的东西,但一线。我来自谷歌,而我想要的就是那个衬板(同时在一个论坛上找到它),所以我想我也应该分享一下;)我将无法提出它扑朔迷离
Matthieu Napoli 2015年

1

安装完成后,哦,我的-zsh的最后一行.zshrc有:

# Set personal aliases, overriding those provided by oh-my-zsh libs,
# plugins, and themes. Aliases can be placed here, though oh-my-zsh
# users are encouraged to define aliases within the ZSH_CUSTOM folder.  
# For a full list of active aliases, run `alias`.
# 
# Example aliases
# alias zshconfig="mate ~/.zshrc"
# alias ohmyzsh="mate ~/.oh-my-zsh"

因此,您有一些选择:

  • 直接添加到 .zshrc
  • 创建一个文件夹,并在其路径添加在结束.zshrcZSH_CUSTOM=$HOME/Dropbox/.myzshconfig
  • 使用该~/.oh-my-zsh/custom文件夹git clone git://github.com/yourusername/zsh_config.git .
  • 使用source/ dot运算符:

    # CUSTOMIZATION FOR ZSH
    if [ -r ~/Dropbox/.myzshrc ]; then
        source ~/Dropbox/.myzshrc
    fi

    -r FILE检查是否存在授予读取权限。

    在这种情况下,您可以检查$SHELL包含相同文件的自定义bash和zsh。

参考


感谢Dropboxing它的好主意
阿里富尔·哈克
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.