****************************************
* LUG meet on 12 Jan. 2003 @ VJTI
****************************************

You can rewrite the same program as follows

-----------------------------------
#!/bin/bash

count=0
var="arg"

while test $# -ne 0 ; do
   count=$[ $count + 1 ]
   if test $cmd -eq -1 ; then
          shift
      arg1=$1
          echo $arg1
   fi
done
-----------------------------------

Couple of points.

Instead of using expr you can use bash' inbuilt expression evaluator using
$[ and ]. Also use "test <condition>" instead of "`test <condition>`" again
using inbuilt test. 

Amitay.


On Mon, Dec 16, 2002 at 09:59:13PM +0530, Nikhil Joshi wrote:
> ****************************************
> * LUG meet on 12 Jan. 2003 @ VJTI
> ****************************************
> 
> Hi!
> 
> I'm trying to take command line args with the help of a bash script
> But i'm not able to achieve it
> Pls guide.
> 
> #!/bin/bash
> # i want to detect command line options 
> # e.g. sample.sh -1 foo1 -2 foo2 -3 foo3
> # then i want following : arg1=foo1, arg2=foo2 , arg3=foo3
> # I tried following but arg1 takes the value $2, arg2 $3  and arg3 $3
> 
> 
> count=0 # counter to track current command line arg
> 
> for cmd in $@
>   do
>      count=`expr $count + 1` # count = count + 1
>      if `test $cmd = -1`
>       then
>       arg1=$`expr $count + 1` 
>       echo $arg1 # unfortunately it gives $2 and not foo1
>      fi
>   done
> 
> 
> 
> 
> 
> 
> -- 
> _______________________________________________
> 
> http://mm.ilug-bom.org.in/mailman/listinfo/linuxers
> 
> 
> 

Amitay.
-- 

Eighty percent of married men cheat in America. The rest cheat in Europe. 
- Jackie Mason


-- 
_______________________________________________

http://mm.ilug-bom.org.in/mailman/listinfo/linuxers



Reply via email to