Take the 2-minute tour ×
Server Fault is a question and answer site for professional system and network administrators. It's 100% free, no registration required.

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...

share|improve this question
add comment

2 Answers 2

up vote 18 down vote accepted

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

i.e.

if [ $VAR ]
then
    echo $VAR exists!
fi
share|improve this answer
3  
But unlike test it requires the last arg to be a ] –  Florian Diesch May 5 '10 at 19:09
3  
[ 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 '10 at 19:27
2  
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 –  Matt Simmons May 5 '10 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 '10 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. –  Jonathan Leffler May 6 '10 at 15:05
show 4 more comments

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.

share|improve this answer
    
I would accept your answer but Zypher beat you to it by a few seconds... sorry :-) –  Josh May 5 '10 at 19:15
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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