Charlie Bennett wrote:
> Is this expected behavior?
>
> [EMAIL PROTECTED] .ssh]# [ -f ]
> [EMAIL PROTECTED] .ssh]# echo $?
> 0
Yes. That is expected behavior. With one argument the return code is
true if the string is non-zero in length. The case covered is this
case:
if [ "$variable" ]; then
echo variable contains data
fi
Because you can enter any data you want into variable if it were
interpreted as a -f operator then you would get the dreaded "test:
argument expected" message as was often seen before this rule came
into place. POSIX requires this behavior. See this document:
http://www.opengroup.org/onlinepubs/009695399/utilities/test.html
The pertinent lines are:
0 arguments:
Exit false (1).
1 argument:
Exit true (0) if $1 is not null; otherwise, exit false.
2 arguments: ...
Bob
_______________________________________________
Bug-bash mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/bug-bash