Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 9 Apr 2011 17:57:29 +0200
From:      Polytropon <>
To:        Dino Vliet <>
Subject:   Re: shell programming question: help with expr command
Message-ID:  <>
In-Reply-To: <>
References:  <>

Next in thread | Previous in thread | Raw E-Mail | Index | Archive | Help
On Sat, 9 Apr 2011 06:31:28 -0700 (PDT), Dino Vliet <> =
> Hi folks,
> I'm having trouble with a little shell script. Can somebody
> explain me why I get 3 times "expr: syntax=A0 error" in my
> console after I run this little script?
> #! /usr/local/bin/bash
> # testscript=20
> var1=3D"trees.J48" #other value will be rules.Jrip, rules.DecisionTable
> len=3D${#var1}
> ind=3D`expr index $var1 s`
> pos=3D`expr $len - $ind`
> out=3D`expr substr $var1 $ind $pos`=20
> I would expect (and want the following to happen):
> $ind should contain 6
> $pos should contain 3
> $out should contain J48 (other values will have to be Jrip,DecisionTable)
> Can anyone help me with this?

The explaination is quite simple: expr doesn't know "index"
or "substr"; see "man expr" for details.

A polite sidenote: Unless you have a good reason to code
in bash-specific manner, do NOT #!/usr/local/bin/bash, as
this is NOT portable (if this is one of your goals); use
the standard #!/bin/sh instead.

Depending on what you have in mind, maybe mentioning the
strengths of perl, sed and awk is worth being mentioned. :-)

Magdeburg, Germany
Happy FreeBSD user since 4.0
Andra moi ennepe, Mousa, ...

Want to link to this message? Use this URL: <>