23

I was just poking around in /usr/bin and I found an ELF binary file called [. /usr/bin/[. I have never heard of this file and my first thought was that it was a clever way of hiding a program, possibly a trojan. However it's present on all my CentOS servers and seems to have no manual entry. I can hazard a guess as to what it is but I was looking for a more authoritative answer...

0

3 Answers 3

26

It's an alternative form of the 'test' command. Mostly used in scripts.

i.e.

if [ $VAR ]
then
    echo $VAR exists!
fi
9
  • 3
    But unlike test it requires the last arg to be a ] May 5, 2010 at 19:09
  • 4
    [ is a bash builtin, but so is test. not all shells are created equal — in plenty of them, test (and [) aren’t builtins.
    – Mo.
    May 5, 2010 at 19:27
  • 3
    There is a bash built-in, or at least, my system is acting as though there is. [ --help gives different input than /usr/bin/[ --help May 5, 2010 at 19:27
  • 3
    test and [ are builtin to bash, but not necessarily all other shells. You could temporarily move out of the path and run a bash script that uses either and you will see that the script still works.
    – Zoredache
    May 5, 2010 at 19:28
  • 3
    @Josh: once upon another millennium, the Bourne shell did not have the test operator built in. It was a regular command like any other; and /bin/test was linked to /bin/[ to give notational convenience. May 6, 2010 at 15:05
9

It's what you call when you are using something like

if [ -e foo ]; then ...

in a shell script (but most shells have it as a buildin this days). man test should give you the docs.

1
  • I would accept your answer but Zypher beat you to it by a few seconds... sorry :-)
    – Josh
    May 5, 2010 at 19:15
3

As others pointed out, [ is the shell's condition evaluation utility - test.

In fact, there is a manual page for that!

$ man [

should give you more details about the opening square bracket.

Btw, in OS X, [ is located in /bin/[ :)

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.