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