Date: Tue, 14 Aug 2001 19:12:14 -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: <20010814191214.A55329@moo.holy.cow> In-Reply-To: <5CD46247635BD511B6B100A0CC3F023925A069@ldcmsx01.lc.ca.gov>; from drewt@writeme.com on Tue, Aug 14, 2001 at 03:43:31PM -0700 References: <5CD46247635BD511B6B100A0CC3F023925A069@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 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 ...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} -- 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?20010814191214.A55329>