.bashrc中$ 0的值

时间:2013-06-29 14:26:28

标签: bash shell

为什么〜/ .bashrc 中$ 0的值为 bash

echo "`pwd`/$0 loaded"

我预计 /home/thinker3/.bashrc已加载 但结果是:

thinker3@ubuntu:~$ source .bashrc
/home/thinker3/bash loaded

我的问题已经解决了,感谢Michael Hoffman ,我添加了

echo $BASH_SOURCE loaded

到〜/ .bashrc和/ etc / profile,然后:

/home/thinker3/.bashrc loaded
thinker3@ubuntu:~/addons$ su - root
Password: 
/etc/profile loaded
root@ubuntu:~# 

2 个答案:

答案 0 :(得分:3)

正如Uroc327指出的那样,.bashrc是来源的,因此$0只是被调用进程的名称(可能是bash,就像您从命令中回显$0一样-线)。加载.bashrc时,$BASH_SOURCE的值将包含文件的位置。

答案 1 :(得分:0)

这是bash。这可以通过说

轻松测试
echo "$0"

在你的.bashrc中并启动一个新的bash shell。

原因是$0是正在运行的二进制文件的名称,它不是.bashrc而是bash(通常是解析由于/bin/bash)的价值而导致$PATH