Date: Tue, 14 Aug 2001 20:28:30 -0400 From: 'parv' <parv_@yahoo.com> To: Drew Tomlinson <drewt@writeme.com> Cc: "'FreeBSD Questions (E-mail)'" <freebsd-questions@FreeBSD.org> Subject: Re: Shell Script Help - Comparing Strings Message-ID: <20010814202830.A67894@moo.holy.cow> In-Reply-To: <5CD46247635BD511B6B100A0CC3F023925A06B@ldcmsx01.lc.ca.gov>; from drewt@writeme.com on Tue, Aug 14, 2001 at 04:53:43PM -0700 References: <5CD46247635BD511B6B100A0CC3F0239E342B5@ldcmsx01.lc.ca.gov> <5CD46247635BD511B6B100A0CC3F023925A06B@ldcmsx01.lc.ca.gov>
next in thread | previous in thread | raw e-mail | index | archive | help
this was, on the fateful occasion around Aug 14 19:53 -0400,
sent by Drew Tomlinson
>
> > -----Original Message-----
> > From: parv [mailto:parv_@yahoo.com]
> > Sent: Tuesday, August 14, 2001 4:12 PM
> > To: Drew Tomlinson
> > Cc: FreeBSD Questions (E-mail)
> > Subject: Re: Shell Script Help - Comparing Strings
> >
> >
...
> > you need to add spaces between test operators...
> >
> > if [ "$1"="" ] # notice the difference
> > then
> > $1="www"
> > fi
>
> I see but this didn't work for me either. This is what I get.
>
> if [ "$1"=="" ] #Tried with both single and double "="
> then $1="www"
> fi
> + [ test== ]
> + test=www
> test=www: not found
>
> Another poster explained that "=" sets a value but "==" should be used for
> comparing strings. I tried it both ways but got the same error.
believe it or not, that's progress. error is not in the if
condition but in the variable assignment.
you shouldn't have a '$' in there. i missed it first time around...
guess i was not thinking deep...
now, if you remove '$', then you will still get another error; there
may be a some way to assign a value to a positional parameter, but in
your case, work isn't worth it. instead of assigning something to
$1, use a letter/word variable like shown below.
> > ...but i would test the number of arguments, and set a non positional
> > variable instead...
> >
> > case $# in
> > 0)
> > suffix=www
> > ;;
> >
> > *)
> > suffix=$1
> > ;;
> > esac
> >
> > ...but still better alternative, would be...
> >
> > suffix=${1:-www}
>
> This is stuff I don't understand but thank you for sharing!
btw, another way to write that if condition...
if [ -z "$1"] # true if length is zero
then
...
fi
you should take a look at test(1) and sh(1).
--
so, do you like word games or scrabble?
- parv
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-questions" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20010814202830.A67894>
