gpt4 book ai didi

linux - CentOS中bash启动时如何自动设置别名?

转载 作者:太空宇宙 更新时间:2023-11-04 04:40:28 24 4
gpt4 key购买 nike

当 bash 终端启动时,我希望它自动设置一些别名,但由于某种原因它们无法正常工作。

我有一个名为 .bash_aliases 的 bash 脚本,在我的 .bashrc 文件中,我有以下代码:

if [ -f .bash_aliases ]; then
echo "bash_aliases file is here"
./.bash_aliases
fi

在文件.bash_aliases中我有:

"creating alias for baaa"
alias baaa='echo "baaa"'

现在,当我启动终端时,我看到:

bash_aliases file is here
creating alias for baaa

但是当我尝试命令时:

baaa

我明白了吗?

bash: baaa: command not found...

这有什么意义呢?但是,当我从终端执行此操作时,

[<>@<> ~]$ alias baaa='echo "baaa"'
[<>@<> ~]$ baaa
baaa

这是预期的。为什么在 .bash_aliases 文件中设置别名不起作用?我确保该文件是可执行的:sudo chmod 777 .bash_aliases

我使用的是 CentOS 7。

最佳答案

标点符号很重要。对于要添加的别名,您需要获取定义它们的脚本,并在当前 shell 中执行它们:

# WORKS: source file named bash_aliases in the current directory
. ./.bash_aliases # POSIX-compliant syntax

...也写为...

# WORKS: source file named bash_aliases in the current directory
source ./.bash_aliases # bash-only syntax
<小时/>

如果您执行以下操作:

# BROKEN: Run .bash_aliases as subprocess
./.bash_aliases

...它作为单独的脚本运行,当该脚本退出时别名会被忘记。

<小时/>

顺便说一句 - 由于 source 脚本将其读入当前 shell,而不是作为单独的程序执行,这意味着它不需要文件权限即可执行。因此,您的 .bash_aliases 不需要也不应该具有 +x 权限。

关于linux - CentOS中bash启动时如何自动设置别名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38710604/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com