2015-11-06 57 views
0

我碰到这条线在shell脚本的人来:目的方括号

[-f $host_something ] && .$host_something 

什么是方括号-f开关该做的,什么是安定的”点“它与同一个环境变量

这可能是一个非常基本的shell脚本功能..但试图查找在谷歌的回答是艰难的,因为我无法充分到搜索引擎是什么,我想解释一下。

+1

我认为你缺少一些空间 - 一个后'[',并一前一后'.' ......这些都是重要的;没有它们,该命令将无法正常工作。 – psmears

回答

0

[实际上是一个实际的二进制。这是test(1)命令的别名。它会忽略它的应该是]最后一个参数。运行man test获取更多信息。这不是真正的shell语法。

0

方括号实际上是test工具的别名,因此您可以查看man test以了解其工作原理。该-f开关是可以通过这个工具可以运行很多的测试之一,测试文件是否存在,并且是一个普通文件。

0

你需要更多的空间。
命令

[ -f $host_something ] && . $host_something 

代表

if [-f $host_something ]; then 
    source $host_something 
fi 

或在词:
当在可变host_something给定的文件确实是一个文件,然后执行该文件中的行,而无需打开子外壳。你不需要一个子shell,因为subshel​​l的所有设置一旦完成就会丢失。