我在其中一个shell脚本中遇到了这一行:
[-f $host_something ] && .$host_something
-f开关假设要做的方括号是什么,' ANDING'是什么意思?它具有相同的环境变量
这可能是一个非常基本的shell脚本功能..但是试图在谷歌中查找答案很难,因为我无法向搜索引擎充分解释我想要的内容。
答案 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完成后立即丢失。