shell脚本中方括号的用途

时间:2015-11-06 14:29:35

标签: unix

我在其中一个shell脚本中遇到了这一行:

[-f $host_something ] && .$host_something

-f开关假设要做的方括号是什么,' ANDING'是什么意思?它具有相同的环境变量

这可能是一个非常基本的shell脚本功能..但是试图在谷歌中查找答案很难,因为我无法向搜索引擎充分解释我想要的内容。

3 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

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

答案 2 :(得分:0)

你还需要更多的空间 命令

[ -f $host_something ] && . $host_something

代表

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

或用文字表示:
当变量host_something中给出的文件确实是文件时,则执行该文件中的行而不打开子shell。您不需要子shell,因为子shell中的所有设置都会在子shell完成后立即丢失。