How do I ask "if NOT" in shell?
    Dave Hitz 
    hitz at auspex.auspex.com
       
    Tue Oct 24 08:21:55 AEST 1989
    
    
  
In article <28381 at shemp.CS.UCLA.EDU> kirkaas at oahu.UUCP (paul kirkaas) writes:
>How can one say "if not" in a shellscript; that is, execute the body of
>the "then" only if the argument of "if" returns a non-zero exit status?
>
>I would like something like:
>
>if ! TESTCOMMAND
>then
>	BODY
>fi
I often define the following in my shell scripts.
	    NOT() {
		if ${1+"$@"}
		then return 1;
		else return 0;
		fi
	    }
Unfortunately, not all shells support functions yet, but for those that
do this works fine.  You can use this just like you requested:
	    if NOT grep foobar /etc/passwd >&-
	    then
		    BODY
	    fi
Picky people may observe that the arguments to NOT get expanded by
the shell twice, but I've never been caught by this.
-- 
Dave Hitz					home: 408-739-7116
UUCP: {uunet,mips,sun,bridge2}!auspex!hitz 	work: 408-970-8970
    
    
More information about the Comp.unix.questions
mailing list