Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash别名don';在由.bashrc调用的单独文件中定义时不起作用_Bash - Fatal编程技术网

Bash别名don';在由.bashrc调用的单独文件中定义时不起作用

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" 它们不

我的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"


它们不起作用,因为您将
~/.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