bash null conditional

Robert Nichols rnicholsNOSPAM at comcast.net
Mon Mar 30 18:42:58 UTC 2009


Craig White wrote:
> I'm in my bash book and looking on web but can't seem to resolve this
> simple problem.
> 
> $ if [ -n "grep A121 myfile.csv" ]; then echo "null"; fi
> null
> 
> $ if [ -n "grep A125 myfile.csv" ]; then echo "null"; fi
> null
> 
> A125 definitely is null when I just run the grep command in the quotes
> but A121 definitely is not null.
> 
> What am I missing on the if/null operator here?

As written, you are asking if the literal string "grep A121 myfile.csv"
is non-null, which obviously is true and has nothing whatsoever to do
with the 'grep' command, which is never invoked.

$ if [ -n "`grep A121 myfile.csv`" ]; then echo "null"; fi

This will actually invoke 'grep' and insert its output into the string
to be tested.

-- 
Bob Nichols     "NOSPAM" is really part of my email address.
                 Do NOT delete it.




More information about the users mailing list