Date: Tue, 14 Aug 2001 16:53:43 -0700 From: Drew Tomlinson <drewt@writeme.com> To: 'parv' <parv_@yahoo.com> Cc: "'FreeBSD Questions (E-mail)'" <freebsd-questions@FreeBSD.org> Subject: RE: Shell Script Help - Comparing Strings Message-ID: <5CD46247635BD511B6B100A0CC3F023925A06B@ldcmsx01.lc.ca.gov> In-Reply-To: <5CD46247635BD511B6B100A0CC3F0239E342B5@ldcmsx01.lc.ca.gov>
next in thread | previous in thread | raw e-mail | index | archive | help
> -----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 > > > this was, on the fateful occasion around Aug 14 18:43 -0400, > sent by Drew Tomlinson > > > > As I continue in writing my first shell script, I can't > figure out how to > > compare strings properly. For example, I want to run my > script and pass an > > argument to it from the command line. However, if this > argument is not > > passed, then I want to set it to a defined value. I'm > trying to use the if > > statement for this. Here's a clip of my code: > > > > #! /bin/sh -vx > > > > # 8/8/01 > > # An attempt to write script to run webalizer to generate > web stats for all > > # virtual web sites. > > > > # Set command line variables. $1 = web to run. > > > > # Set $1 to "www" if blank. > > echo $1 > > if ["$1"=""] > > then $1 = "www" > > fi > ... > > > echo $1 > > + echo test > > test > > if ["$1"=""] > > then $1 = "www" > > fi > > + [test=] > > [test=]: not found > ... > > 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. > ...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! I'm sure I'll come across it when I get into this further. I've only had a intro unix class so I only experienced the very basics. Thanks, Drew 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?5CD46247635BD511B6B100A0CC3F023925A06B>