2010-10-20 9 views
12

Estoy tratando de hacer un comando getopt de modo que cuando paso el parámetro "-ab" a un script, ese script tratará -ab como un parámetro único.¿Cómo hacer un parámetro multi-carácter en UNIX usando 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 

Sin embargo, esto no parece funcionar. ¿Alguien puede ofrecer alguna ayuda?

Respuesta

-2

getopt admite formato largo. Puede buscar SO para tales examples. Consulte here, por ejemplo

+1

¿Puedes ofrecer un ejemplo de cómo se usa esto? – Waffles

8

getopt no es compatible con lo que está buscando. Puede usar una sola letra (-a) o opciones largas (--long). Algo como -ab se trata de la misma manera que -a b: como opción a con el argumento b. Tenga en cuenta que las opciones largas están precedidas por dos guiones.

Cuestiones relacionadas