On (info "(coreutils)File type tests", and test(1) man page, we see
  `-t FD'
       True if FD is a file descriptor that is associated with a terminal.

Well please mention what happens if FD is omitted:
$ test -t
The answer is it always returns true, no matter what. Test with
$ echo 'set -x; for i in 0 1 2 3 ""; do /usr/bin/test -t $i; : $?; done; 
tty'|at now; sleep 4; mail

Same problem with the bash and dash builtin tests and documents.
bash is even more freaky:

$ t=test #bash builtin
$ $t -t; echo $?
0
$ $t -t ''; echo $?
1
$ $t -t ' '; echo $?
0
$ t=/usr/bin/test
$ $t -t; echo $?
0
$ $t -t ''; echo $?
/usr/bin/test: invalid integer `'
2
$ dash
$ t=test
$ $t -t; echo $?
0
$ $t -t ''; echo $?
test: 3: Illegal number:
2


_______________________________________________
Bug-coreutils mailing list
Bug-coreutils@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-coreutils

Reply via email to