'test' utility behavior question.
Oleksandr Gavenko
gavenkoa@gmail.com
Mon Aug 30 17:49:00 GMT 2010
On 2010-08-30 20:31, Eric Blake wrote:
> On 08/30/2010 11:27 AM, Oleksandr Gavenko wrote:
>> $ /bin/test -d && echo ok
>> ok
>> $ /bin/test -d '' && echo ok || echo must_be_error
>> must_be_error
>
> Both of these results match POSIX. Remember, POSIX describes different
> behaviors for one argument than for two arguments (for the one-argument
> case, the string "-d" is non-empty, so the result must be 0; for the
> two-argument case, the string "-d" is a unary operator, and there is no
> directory named '').
>
>> if [ -d $dir ]; then
>
> The bug is in your script. You forgot to use quoting or a bashism.
> Either of these fixes will correct your script (although the latter
> requires bash):
>
> if [ -d "$dir" ]; then
>
> if [[ -d $dir ]]; then
>
> This is not cygwin-specific.
>
You right!
Sorry, I miss this when read POSIX:
1 argument:
Exit true (0) if $1 is not null; otherwise, exit false.
--
Best regards!
--
Problem reports: http://cygwin.com/problems.html
FAQ: http://cygwin.com/faq/
Documentation: http://cygwin.com/docs.html
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
More information about the Cygwin
mailing list