Bash别名don';在由.bashrc调用的单独文件中定义时不起作用
我的bash别名在从Bash别名don';在由.bashrc调用的单独文件中定义时不起作用,bash,Bash,我的bash别名在从.bashrc调用的文件中定义。我知道该文件已正确执行,因为我在.bash\u alias的末尾放置了一个echo命令 但是,别名仅在.bashrc中定义时有效,在中定义时无效。 别名-p没有任何输出 在.bashrc中: ~/.bash_aliases .bash\u别名: #!/bin/bash #All bash aliases alias a="a.sh" alias b="b.sh" echo "All aliases configured" 它们不
.bashrc
调用的文件中定义。我知道该文件已正确执行,因为我在.bash\u alias
的末尾放置了一个echo
命令
但是,别名仅在.bashrc
中定义时有效,在中定义时无效。
别名-p
没有任何输出
在.bashrc
中:
~/.bash_aliases
.bash\u别名
:
#!/bin/bash
#All bash aliases
alias a="a.sh"
alias b="b.sh"
echo "All aliases configured"
它们不起作用,因为您将~/.bash\u别名作为单独的进程运行。别名在新进程中创建,然后结束。当前外壳不受影响
为了使它们正常工作,您必须在当前shell中运行~/.bash\u别名
这很容易。使用source
shell命令:
将.bashrc
更改为:
source ~/.bash_aliases
备注:您也可以使用~/。取而代之的是bash_别名
。
它与source
命令相同,只是更短。我更喜欢在脚本中使用source
,因为它更直观。当您需要从命令行在当前shell中运行脚本时,最好使用这种简短形式(因为它较短)。if[-f$HOME/.bash\u alias];然后source$HOME/.bash\u别名fi