2012-05-20 48 views
-1

我发现在我的linux实例的.bashrc中有几行代码。可以向我解释这一行代码意味着什么。我没有shell编程的背景。这个shell脚本代码行是什么意思

if [ -f ~/.bashrc ]; then 
     . ~/.bashrc 
fi 

在此先感谢您的帮助

+2

如果该代码位于〜/ .bashrc中,请将其删除:bash已经在读取您的bashrc文件。如果它在〜/ .profile或〜/ .bash_profile中,请保留它,这很好。 –

回答

7

[ -f ~/.bashrc]tests wheather文件.bashrc在当前主目录中。如果它存在,那么它是来源。

这意味着它在当前shell中执行,而不是启动一个新的shell。因此,脚本中的所有更改都会直接影响当前shell,而无需导出变量。

+0

。 〜/ .bashrc你确定这会运行bashrc文件吗? 〜/ .bashrc将完成他的工作。 – mawia

+1

只需执行'〜/ .bashrc'在新shell中执行该文件,则对环境变量所做的更改不会影响旧shell。 '。 ./。bashrc'在当前shell中执行脚本并用于设置环境。如果你想尝试一下,把'echo something'放在你的.bashrc文件中,并启动一个新的shell。 – mata

+0

谢谢!明白了你的意思!虽然在两者之间你能解释你的建议吗? – mawia

0

那么,它是shell脚本编程语言中的if条件语句。 if [-f ~/.bashrc]意味着如果您的主目录中有一个名为.bashrc的文件,那么当您登录您的linux系统时,./bashrc文件将由init进程自动运行。它用于为您自动配置系统环境。