驻留在我系统的 /bin 中的 `[` 程序是什么?

Nli*_*tis 32 fedora gnu coreutils

我最近在浏览我的 Fedora/bin文件夹时注意到一个名为[. 我确实尝试在互联网上搜索有关这方面的更多信息,但找不到任何有用的信息。运行它strace似乎也不会产生任何对仔细检查有用的东西。

那是什么?我应该惊慌吗?这可能是系统妥协的结果吗?我应该运行它吗?它属于任何包吗?

Nli*_*tis 37

在许多 GNU/Linux 发行版中[驻留在/bin树下的二进制文件并不值得警惕。至少在我的 Fedora 19 中,它是 coreutils 包的一部分,如下所示:

$ rpm -qf /bin/[
coreutils-8.21-13.fc19.x86_64
Run Code Online (Sandbox Code Playgroud)

and 是test允许表达式的同义词,例如[ expression ]用 shell 脚本编写甚至交互式使用。

  • 请注意,像 `bash` 这样的 shell 具有内置的 `test` 和 `[`,并且不会调用外部二进制文件。 (16认同)
  • @vonbrand http://pubs.opengroup.org/onlinepubs/009695399/utilities/test.html 你是对的。本规范需要一个测试命令`[`。 (2认同)

Tho*_*sen 5

[命令是相同的test命令。

它允许您在 shell 脚本中编写相当简洁的条件语句。从 SunOS 手册页:

   if [ "$1" = "pear" ] || [ "$1" = "grape" ] || [ "$1" = "apple" ]
   then
       command
   fi
Run Code Online (Sandbox Code Playgroud)

如果您删除它,脚本将中断!