[NTLUG:Discuss] Help with script

George Lass george.lass at sbcglobal.net
Thu Mar 18 14:10:44 CDT 2010


When I tried to run what you wrote, it seems that the semicolon's were not being processed as one would have thought in your grep; if; then; fi sequence.

You might try something like this:


    function pretty {
    echo "<tr><td> $1 </td></tr><tr><td>"
    shift
    echo $*
    echo "</td></tr>"
    }
                                                                                
                                                                                
pretty 'grep 127 /etc/hosts' `grep 127 /etc/hosts ; if [[ $? = 1 ]] ; then echo
IP Address 127 not found ; fi`
                                                                                
pretty 'grep 9999 /etc/hosts' `grep 9999 /etc/hosts ; if [[ $? = 1 ]] ; then echo IP Address 9999 not found ; fi`




# Note that the "grep; if; then; fi"  sequence is enclosed in grave marks and not single quotes.

George

--- On Thu, 3/18/10, Leroy Tennison <leroy_tennison at prodigy.net> wrote:

> From: Leroy Tennison <leroy_tennison at prodigy.net>
> Subject: [NTLUG:Discuss] Help with script
> To: "NTLUG Discussion List" <discuss at ntlug.org>
> Date: Thursday, March 18, 2010, 1:08 AM
> I'm attempting to "wrap" HTML around
> a script's output in order to make
> the output "pretty" but I also need to output the "real"
> commands in the
> script (but not the ones doing the "beautification"). 
> My current
> attempt looks like:
> 
>     function pretty {
>     echo "<tr><td>" $@
> "</td></tr><tr><td>"
>     $@
>     echo "</td></tr>"
>     }
> 
> 
> Using:
> 
>     pretty grep 127 /etc/hosts
> 
> 
> works as expected.
> 
> I've tried everything I can think of to get the following
> to work but
> without success:
> 
>     pretty grep 127 /etc/hosts; if [[ $? = 1 ]];
> then echo "127 not
>     found"; fi
> 
> 
> I've put single quotes around the entire command, I've put
> double quotes
> around it, I've tried setting each piece of the command
> (the parts
> between the semicolons) to a variable and using the
> variables in the
> function.  Nothing works, what I get is:
> 
> pretty[(a line number)]: if: not found [No such file or
> directory]
> pretty[(a line number)]: then: not found [No such file or
> directory]
> pretty[(a line number)]: fi: not found [No such file or
> directory]
> 
> It seems that $@ has to be an executable program, nothing
> else works. 
> Executing the script with -v or -x doesn't add much except
> parts of the
> command are being quoted.  Any one know how to solve
> this problem?  Much
> thanks.
> 
> _______________________________________________
> http://www.ntlug.org/mailman/listinfo/discuss
> 



More information about the Discuss mailing list