Re: bash scripts conditionals and substrings

Top Page
Attachments:
Message as email
+ (text/plain)
Delete this message
Reply to this message
Author: Craig White
Date:  
To: plug-discuss
Subject: Re: bash scripts conditionals and substrings
On Mon, 2005-02-28 at 20:05 -0700, Craig White wrote:

> # head -n 4 /tmp/outfile.txt
> **** START OF SECTION - horde - ****
> default_identity
> identities
> identityselect
>
> #### gives you the idea of what I'm working on...
>
> What I am trying to do is see if line has "***** START ...
> and if so, write it to the outfile
> otherwise, write the other (else)
>
> The else works fine but the IF evaluates as a local file and not the
> value the 5 characters after the 6 offset and tries to execute it -
> which of course generates a whole pile of standard error junk.

---
everything but the lines that contain the **** which the conditional
gags on no matter whether I use Kevin's awk or the bash assignment, the
same thing happens...

error message...

./pref_prefs_hooks.create: line 10: [: =: unary operator expected
#!/bin/sh

infile="/tmp/outfile.txt"
outfile="/tmp/default_user.php"

> $outfile


for i in `cat $infile`;
do \
    if [ `echo $i | awk '{print substr($i,5,5)}'` = "START" ]
      then echo "yes"
  else
      echo "no"
  fi
done


this line below (in place of line 10) will have the same error...
#    if [ "START" == ${i:5:5} ]
but the awk command is infinitely slower to execute ;-)


I know that it is trying to execute the '*' instead of evaluate the
string $i

I don't get it...

Craig



---------------------------------------------------
PLUG-discuss mailing list -
To subscribe, unsubscribe, or to change you mail settings:
http://lists.PLUG.phoenix.az.us/mailman/listinfo/plug-discuss