.bashrc从其他文件加载别名


11

我有一个.bashrc文件,我想对其进行设置,以便它从.aliases文件中读取别名并进行设置。

目前我有:

# User specific aliases and functions
while read alias_line
do
        echo `alias ${alias_line}`
done < .aliases

但是登录后我得到:

-bash:别名:-fu:找不到-bash:别名:$ USER“:找不到

-bash:别名:-lart“:找不到

.aliases文件是这样的:

psu =“ ps -fu $ USER” ll =“ ls -lart”
pico ='nano'

Answers:


13

使用时alias ${alias_line},变量会在空格处分开,而忽略引用规则。

有两种解决方法:

  • 从别名文件中删除所有引用:

    ll=ls -lart
    psu=ps -fu $USER

    并将变量本身放在引号中:

    alias "$alias_line"

    这工作,因为在bash,ll="ls -lart"并且"ll=ls -lart"是完全等价的。

  • 或者(这是一种更好且更常见的方法),alias使用带有命令的文件,然后使用.内置的(aka source)导入文件。

    alias pico='nano'
    alias psu='ps x'
    alias ll='ls -lart'

    然后在您的~/.bashrc

    . ~/.aliases

第二种方法更好,因为它不仅限于别名,还允许定义功能,它们的功能要强大得多。


那就对了。这是完全错误的方法。我自己使用以下命令完成的:做echo“ alias $ line” >> .aliases_full; 完成<.aliases之后,我只执行了mv .aliases_full .aliases。./.aliases #in .bashrc无论如何,谢谢:)
弗拉基米尔·
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.