首页 > 解决方案 > Bash 别名在由 .bashrc 调用的单独文件中定义时不起作用

问题描述

我的 bash 别名是在一个.bash_aliases.bashrc. 我知道该文件已正确执行,因为我echo.bash_aliases.
但是,别名仅在 中定义时有效,在中定义.bashrc时无效.bash_aliases

alias -p没有任何输出。



.bashrc

~/.bash_aliases


.bash_aliases

#!/bin/bash

#All bash aliases

alias a="a.sh"
alias b="b.sh"

echo "All aliases configured"

标签: bash

解决方案


它们不起作用,因为您~/.bash_aliases作为单独的进程运行。别名在该新进程中创建,然后结束。当前的外壳不受影响。

为了使它们工作,您必须~/.bash_aliases在当前 shell 中运行。

这很容易。使用source外壳命令:

改为.bashrc阅读:

source ~/.bash_aliases

备注:你也可以. ~/.bash_aliases改用。
它与 相同的命令source,只是更短。我更喜欢source在脚本中使用,因为它更明显。当您需要从命令行在当前 shell 中运行脚本时,这种简短形式更可取(因为它更短)。


推荐阅读