← Back to team overview

sslug-teknik team mailing list archive

parse argumenter til et bash-script

 

Hejsa

Jeg vil gerne lave et script som kan kaldes som:

test -t 2 -c infil

hvor "2" er en parameter til "-t", -c er en alm switch. infil er påkrævet, "-t" og "2" skal hænge sammen men er optionale og -c er optional. Gerne med mulighed for at byte om på "-t 2" og "-c"...

Lige nu har jeg:

#!/bin/bash
if [ -z "$1" ]; then
    echo usage: abcview [transpose] abcfile
    exit;
fi

while getopts  "ct::" flag
do
  echo "$flag" $OPTIND $OPTARG
done
  echo $OPTIND
exit

Men det virker ikke helt efter hensigten, fx kan jeg ikke finde ud af at få hold i filnavnet. Desuden er der nogle tilfælde som er tilladte som ikke burde være det. Hvis en venlig sjæl kan komme med et hint og meget gerne et link til hvor jeg kan læse mere om parsing af argumenter i bash, ville jeg blive glad.

--
peace, love & harmony
Atte

http://www.atte.dk


Follow ups