运行后set -a var=99
,我可以在输出中找到一句话set
:
...
TERM=xterm
UID=0
USER=root
VIRTUAL_ENV_DISABLE_PROMPT=1
_=var=99
colors=/etc/DIR_COLORS
...
Run Code Online (Sandbox Code Playgroud)
谁能告诉我“_=”是什么意思?
我注意到这echo $var
不会给任何东西。如果我运行set -a
,则set
不会再次包含此变量。怎么了?
好的,所以source
在当前 shell 中.
单独运行脚本,例如使用“.”和“源”运行脚本中的详细说明,但是,特别是在我的.bashrc
文件中,我有:
[ -f ~/.bash_aliases ] && source ~/.bash_aliases
[ -f ~/.git-completion.bash ] && source ~/.git-completion.bash
[ -s ~/.autojump/etc/profile.d/autojump.sh ] && source ~/.autojump/etc/profile.d/autojump.sh
Run Code Online (Sandbox Code Playgroud)
我可以将其替换为:
[ -f ~/.bash_aliases ] && . ~/.bash_aliases
[ -f ~/.git-completion.bash ] && . ~/.git-completion.bash
[ -s ~/.autojump/etc/profile.d/autojump.sh ] && . ~/.autojump/etc/profile.d/autojump.sh
Run Code Online (Sandbox Code Playgroud)
这会在 OS X 上工作吗 - 那是“POSIX”问题吗?
我试过了,上面的内容似乎仍然适用于 Ubuntu(所以它们实际上可以同时使用source
和.
,也就是说,它们在 shell 中为我提供了所需的功能)。我应该选择一个而不是另一个,还是我错过了什么?
FWIW,在 OS X 上,我.bashrc
从我的.bash_profile
.