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

Re: bash help please



On Friday 10 June 2016 01:34:14 David Wright wrote:

> On Fri 10 Jun 2016 at 01:04:40 (-0400), Gene Heskett wrote:
> > On Thursday 09 June 2016 23:50:35 David Wright wrote:
> > > On Thu 09 Jun 2016 at 22:41:27 (-0400), Gene Heskett wrote:
> > > > A bash script that has worked most of a decade now refuses.
> > > >
> > > > For instance, assume that var InMail is = "gene", and can be
> > > > echoed from the command line using $InMail like this.
> > > > gene@coyote:~$ echo $InMail
> > > > gene
> > > > But I'll be switched if I can get a result from a line of code
> > > > resembling this from the command line while attempting to
> > > > troubleshoot a 110 line bash script: which asks "if test
> > > > [${InMail} = "gene"]
> > > > 			  then
> > > > 				-----
> > > > 			 elif (another name)
> > > > 				yadda yadda
> > > >
> > > > gene@coyote:~$ echo `test [${InMail} = "gene"]`
> > > >
> > > > All I get is the linefeed.  Obviously I'm losing it, so how do I
> > > > translate and get usefull output for troubleshooting?
> > >
> > > $ `[ ${InMail} = "gene" ]` ; echo $?
> > > 0
> > > $ `[ ${InMail} = "xgene" ]` ; echo $?
> > > 1
> > > $ `test ${InMail} = "gene"` ; echo $?
> > > 0
> > > $ `test ${InMail} = "xgene"` ; echo $?
> > > 1
> > > $
> > >
> > > elif needs [], not (), and it needs a then too.
> > >
> > > [ is a command like test, so it must be followed by a space
> > > before its argument.
> > >
> > > Often the easiest way of solving these is grep -A ... used with
> > > /etc/init.d/*
> >
> > This script is home brew, and has never had a starter in /etc/init.d
>
> Um, not my intention to make you try.
>
> Look, /etc/init.d/* is a collection of scripts that work.
> grep searches files for patterns.
> Put them together and you can bash away by example. Try
>
> $ grep -A 6 -B 6 elif /etc/init.d/* | less
>
> and you will get lots of examples of multiple tests involving strings
> (like yours), numbers, arithmetic xpressions etc. all syntactically
> correct. Copy what you need, either from there or the original file.
>
> Cheers,
> David.

Ah, I see.  Been guilty of that before, but my memory isn't what it was 
even 40 years ago, darn it.

Cheers, Gene Heskett
-- 
"There are four boxes to be used in defense of liberty:
 soap, ballot, jury, and ammo. Please use in that order."
-Ed Howdershelt (Author)
Genes Web page <http://geneslinuxbox.net:6309/gene>


Reply to: