什么是/ usr / bin / [?


21

我只是在/ usr / bin中闲逛,发现一个名为的ELF二进制文件[/usr/bin/[。我从未听说过此文件,我的第一个念头是这是隐藏程序(可能是特洛伊木马程序)的一种聪明方法。但是它存在于我所有的CentOS服务器上,似乎没有手动输入。我可以猜测一下是什么,但我一直在寻找更权威的答案...

Answers:


23

这是“测试”命令的另一种形式。主要用于脚本中。

if [ $VAR ]
then
    echo $VAR exists!
fi

3
但与测试不同的是,它要求最后一个参数为[]
Florian Diesch 2010年

4
[ 内置的bash,但也是如此test。并非所有shell都是一样的-在很多shell中,test(和[)不是内置的。
Mo.

2
有内置的bash,或者至少,我的系统好像在运行。[--help提供的输入不同于/ usr / bin / [
Matt Simmons,2010年

3
test和[内置于bash,但不一定是所有其他shell。您可以暂时移出该路径并运行使用其中任何一个的bash脚本,然后您将看到该脚本仍然有效。
Zoredache

3
@Josh:很久以前,Bourne外壳程序没有内置测试操作符。/ bin / test链接到/ bin / [以提供符号上的方便。
乔纳森·勒夫勒

8

当您使用类似的东西时,这就是您所说的

if [ -e foo ]; then ...

在shell脚本中(但如今大多数shell都将其作为内置文件)。男人测试应该给你的文档。


我会接受您的回答,但Zypher击败了您几秒钟...抱歉:-)
乔什(Josh)2010年

2

正如其他人指出的那样,[是外壳的状态评估实用程序-测试。

实际上,有一个手册页面!

$男人[

应该为您提供有关方括号的更多详细信息。

在OS X中,顺便说一句[位于/bin/[:)

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.