From owner-freebsd-questions Tue Aug 14 15:44:54 2001 Delivered-To: freebsd-questions@freebsd.org Received: from lcmail2.lc.ca.gov (lcmail2.lc.ca.gov [165.107.12.11]) by hub.freebsd.org (Postfix) with ESMTP id 0CE3637B40C for ; Tue, 14 Aug 2001 15:44:50 -0700 (PDT) (envelope-from drewt@writeme.com) Received: from CONVERSION-DAEMON by lcmail2.lc.ca.gov (PMDF V5.2-27 #40821) id <0GI200901XVCEZ@lcmail2.lc.ca.gov> for freebsd-questions@FreeBSD.org; Tue, 14 Aug 2001 15:45:14 -0700 (PDT) Received: from tagalong ([165.107.42.215]) by lcmail2.lc.ca.gov (PMDF V5.2-27 #40821) with SMTP id <0GI2009B6XV02N@lcmail2.lc.ca.gov> for freebsd-questions@FreeBSD.org; Tue, 14 Aug 2001 15:45:00 -0700 (PDT) Date: Tue, 14 Aug 2001 15:43:31 -0700 From: Drew Tomlinson Subject: Shell Script Help - Comparing Strings To: "FreeBSD Questions (E-mail)" Message-id: <5CD46247635BD511B6B100A0CC3F023925A069@ldcmsx01.lc.ca.gov> MIME-version: 1.0 X-MIMEOLE: Produced By Microsoft MimeOLE V5.50.4522.1200 X-Mailer: Microsoft Outlook CWS, Build 9.0.2416 (9.0.2911.0) Content-type: text/plain; charset="iso-8859-1" Content-transfer-encoding: 7bit Importance: Normal X-Priority: 3 (Normal) X-MSMail-priority: Normal Sender: owner-freebsd-questions@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.ORG 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 web="$1.mykitchentable.net" odir="/usr/local/www/data/webalizer/$1" logfile="/var/log/$1-access.log" echo $web echo $odir echo $logfile exit Now when I run this passing the argument of "test", here is my output: blacklamb# ./webalizer_run.sh test #! /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 + echo test test if ["$1"=""] then $1 = "www" fi + [test=] [test=]: not found web="$1.mykitchentable.net" + web=test.mykitchentable.net odir="/usr/local/www/data/webalizer/$1" + odir=/usr/local/www/data/webalizer/test logfile="/var/log/$1-access.log" + logfile=/var/log/test-access.log echo $web + echo test.mykitchentable.net test.mykitchentable.net echo $odir + echo /usr/local/www/data/webalizer/test /usr/local/www/data/webalizer/test echo $logfile + echo /var/log/test-access.log /var/log/test-access.log exit + exit So my error seems to be in the if statement. Can anyone explain what I'm doing wrong? Thanks, Drew To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-questions" in the body of the message