为什么〜/ .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:~#
答案 0 :(得分:3)
正如Uroc327指出的那样,.bashrc
是来源的,因此$0
只是被调用进程的名称(可能是bash
,就像您从命令中回显$0
一样-线)。加载.bashrc
时,$BASH_SOURCE
的值将包含文件的位置。
答案 1 :(得分:0)
这是bash
。这可以通过说
echo "$0"
在你的.bashrc
中并启动一个新的bash shell。
原因是$0
是正在运行的二进制文件的名称,它不是.bashrc
而是bash
(通常是解析由于/bin/bash
)的价值而导致$PATH
。