Re: bash null conditional

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



2009/3/30 Craig White <craigwhite@xxxxxxxxxxx>:
> On Mon, 2009-03-30 at 13:42 -0500, Robert Nichols wrote:
>> 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.
> ----
> yeah...I actually started with backticks and was trying various things.
>
> This seems to work...
>
> $ if [ `grep -c A121 myfile.csv` -eq 0 ]; then echo "null"; fi
> $ if [ `grep -c A125 myfile.csv` -eq 0 ]; then echo "null"; fi
> null
> $
>
> but if someone clarifies the -n (null) result, I would be grateful.

That is not the null operator.

>From "man test":
       -n STRING
              the length of STRING is non-zero
       -z STRING
              the length of STRING is zero

So your original line was saying:

Is the string "grep blah blah blah" non-zero? which it is, because it
contains the character g r e p etc...


-- 
Sam

-- 
fedora-list mailing list
fedora-list@xxxxxxxxxx
To unsubscribe: https://www.redhat.com/mailman/listinfo/fedora-list
Guidelines: http://fedoraproject.org/wiki/Communicate/MailingListGuidelines

[Index of Archives]     [Current Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Yosemite News]     [Yosemite Photos]     [KDE Users]     [Fedora Tools]     [Fedora Docs]

  Powered by Linux