我如何编写一个在终端启动时显示所有别名的脚本

问题描述 投票:0回答:1

我是一个学习使用Linux的新用户。我目前正在运行带有多个别名的Ubuntu 18.04,并将其保存在〜/ .bashrc目录中。我正在尝试编写一个欢迎脚本,该脚本在启动时还会显示当前别名。我当前的代码如下:

    #! /bin/bash
    echo -e "\nWelcome $USER"
    echo -e "Today's date is: \c"
    date
    echo -e "\vHave \vA \VGreat \vDay! \c"
    echo -e "\nCurrent aliases for reference are:"
    alias

启动时,或单独运行脚本时,欢迎消息会运行,但实际的别名命令不会运行?

bash alias
1个回答
1
投票

首先要注意:

(...)保存在〜/ .bashrc目录中。 (...)

嗯,我必须指出,.bashrc是文件而不是目录,并且是Bash startup files的一部分。

也就是说,在脚本内运行alias命令的原因是它是shell builtin,并且是从脚本will not behave as if running it from your shell调用它的原因。

因此,最快可以做的就是将别名存储在另一个文件中,例如~/.bash_aliases,并通过将其添加到.bashrc文件中来确保将其加载:

if [ -f ~/.bash_aliases ]; then
    source ~/.bash_aliases
fi

然后直接从脚本中读取该文件:

#! /bin/bash

echo -e "\nWelcome $USER"
echo -e "Today's date is: \c"
date
echo -e "\vHave \vA \VGreat \vDay! \c"
echo -e "\nCurrent aliases for reference are:"
cat ~/.bash_aliases
© www.soinside.com 2019 - 2024. All rights reserved.