Monday, March 25, 2013

gnuargs generic


This script takes any list of arguments and makes variables out of them. with the parameters assigned.

#!/bin/bash

k=0
for a in $@; do
    arg=`echo $a | sed -e 's/^[-]*//g' | cut -d= -f1`
    arglist[$k]=$arg
    k=$(( $k + 1 ))
done

n=${#arglist[*]}

while :
do
  case $# in
      0)
break;
;;
  esac

  option=$1
  shift
  orig_option=$option
  case $option in
      --*) ;;
      -*) option=-$option ;;
  esac
  
  case $option in
      --*=*)
      optarg=`echo $option | sed -e 's/^[^=]*=//'`
      arguments="$arguments $option"
      ;;
  esac
  
  for ((i=0; i<$n; i++)); do
      arg=${arglist[$i]}
      case $option in
 --${arg}*)
 eval $arg=$optarg
 ;;
      esac
  done
done

# display output:

for ((j=0; j<$n; j++)); do
    arg=${arglist[j]}
    eval echo $arg=\$$arg

done

0 Comments:

Post a Comment

<< Home