bash - 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_aliases
作为单独的进程运行。别名在该新进程中创建,然后结束。当前的外壳不受影响。
为了使它们工作,您必须~/.bash_aliases
在当前 shell 中运行。
这很容易。使用source
外壳命令:
改为.bashrc
阅读:
source ~/.bash_aliases
备注:你也可以. ~/.bash_aliases
改用。
它与 相同的命令source
,只是更短。我更喜欢source
在脚本中使用,因为它更明显。当您需要从命令行在当前 shell 中运行脚本时,这种简短形式更可取(因为它更短)。
推荐阅读
- docker - 使用堆栈部署的 Docker Swarm 应用程序无法从外部访问
- python - 是否可以维护我之前更改的python工作目录
- storage - 阿里云ECS总是增加磁盘空间?
- python - Error checking input: expected embedding_1 input to have shape but got shape
- python - 实例作为另一个实例的位置参数
- php - laravel 电子邮件验证不会发送
- javascript - 选择标签下拉列表中的年龄?
- html - bootstrap div 中的文本不尊重使用 angular 8 的 div 边界
- reference - 按引用而不是按值复制文件夹?
- javascript - 无法获取下拉列表中所选项目的值