2010-10-20 14 views
12

J'essaie de faire une commande getopt de telle sorte que lorsque je passe le paramètre "-ab" à un script, ce script va traiter -ab comme un seul paramètre.Comment créer un paramètre multi-caractères sous UNIX en utilisant getopt?

#!/bin/sh 
args=`getopt "ab":fc:d $*` 
set -- $args 
for i in $args 
do 
case "$i" in 
     -ab) shift;echo "You typed ab $1.";shift;; 
     -c) shift;echo "You typed a c $1";shift;; 
esac 
done 

Cependant, cela ne semble pas fonctionner. Quelqu'un peut-il offrir de l'aide?

Répondre

-2

getopt prend en charge le format long. Vous pouvez rechercher SO pour tel examples. Voir here, par exemple

+1

Pouvez-vous donner un exemple de comment cela est utilisé? – Waffles

8

getopt ne supporte pas ce que vous cherchez. Vous pouvez utiliser une seule lettre (-a) ou des options longues (--long). Quelque chose comme -ab est traité de la même manière que -a b: en tant qu'option a avec l'argument b. Notez que les options longues sont préfixées par deux tirets.