Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.debian.user > #168779

Re: bash help please

From Gene Heskett <gheskett@shentel.net>
Newsgroups linux.debian.user
Subject Re: bash help please
Date 2016-06-10 07:10 +0200
Message-ID <rImRH-lD-1@gated-at.bofh.it> (permalink)
References <rIkGd-74R-1@gated-at.bofh.it> <rIlVD-887-1@gated-at.bofh.it>
Organization linux.* mail to news gateway

Show all headers | View raw


On Friday 10 June 2016 00:00:12 David Christensen wrote:

> On 06/09/2016 07:41 PM, 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?
>
> 'test' and '[ ... ]' are very similar.  I use the latter.  I
> definitely don't use both in one line.
>
>
> When comparing variables against string constants in '[ ... ]'
> expressions, I put quotes around the variables.
>
>
> Here's a short script that seems to work correctly:
>
> 	2016-06-09 20:48:40 dpchrist@t7400 ~/sandbox/bash
> 	$ cat gene-heskett.sh
> 	#!/bin/bash
> 	export InMail="gene"
> 	echo "InMail=${InMail}"
> 	if [ "${InMail}" = "gene" ]
> 	then
> 	    echo "InMail is gene"
> 	elif [ "$InMail" = "david" ]
> 	then
> 	    echo "InMail is david"
> 	else
> 	    echo "InMail unknown"
> 	fi
>
>
> Here's a run:
>
> 	2016-06-09 20:49:30 dpchrist@t7400 ~/sandbox/bash
> 	$ ./gene-heskett.sh
> 	InMail=gene
> 	InMail is gene
>
>
> Here's a run with the '-x' option:
>
> 	2016-06-09 20:56:19 dpchrist@t7400 ~/sandbox/bash
> 	$ bash -x gene-heskett.sh
> 	+ export InMail=gene
> 	+ InMail=gene
> 	+ echo InMail=gene
> 	InMail=gene
> 	+ '[' gene = gene ']'
> 	+ echo 'InMail is gene'
> 	InMail is gene
>
>
> If that doesn't help, post a complete script that demonstrates the
> problem.
>
>
> David

I might just take you up on that when I am ready to add another layer of 
bulletproofing to it.  Its about 110 lines now.
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>

Back to linux.debian.user | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread


Thread

bash help please Gene Heskett <gheskett@shentel.net> - 2016-06-10 04:50 +0200
  Re: bash help please Lars Noodén <lars.nooden@gmail.com> - 2016-06-10 05:10 +0200
    Re: bash help please Gene Heskett <gheskett@shentel.net> - 2016-06-10 06:40 +0200
  Re: bash help please David Wright <deblis@lionunicorn.co.uk> - 2016-06-10 06:00 +0200
    Re: bash help please Gene Heskett <gheskett@shentel.net> - 2016-06-10 07:10 +0200
      Re: bash help please David Wright <deblis@lionunicorn.co.uk> - 2016-06-10 07:40 +0200
        Re: bash help please Gene Heskett <gheskett@shentel.net> - 2016-06-10 08:40 +0200
  Re: bash help please David Christensen <dpchrist@holgerdanske.com> - 2016-06-10 06:10 +0200
    Re: bash help please Gene Heskett <gheskett@shentel.net> - 2016-06-10 07:10 +0200
      Re: bash help please David Christensen <dpchrist@holgerdanske.com> - 2016-06-11 05:50 +0200
  Re: bash help please <tomas@tuxteam.de> - 2016-06-10 09:10 +0200

csiph-web