![]() |
|
|
google unix.com
|
|||||||
| Foros | Registro | Reglas de los Foros | Enlaces | Álbumes | Preguntas más frecuentes | Lista de miembros | Calendario | Búsqueda | Puestos de hoy | Marcar Foros Como Leídos |
| Programación de scripts de shell y Plantear preguntas sobre KSH, CSH, SH, BASH, PERL, PHP, SED, AWK y otros scripts de shell y lenguajes de script de shell aquí. |
Más UNIX y Linux Foro Temas usted puede encontrar útiles
|
||||
| Hilo | Hilo para principiantes | Foro | Respuestas | Último mensaje |
| g + + y la opción-R | eternalflame | Programación de Alto Nivel | 0 | 04-14-2008 02:57 PM |
| opción-n | Ravi Raj Kumar | Programación de scripts de shell y | 1 | 01-03-2008 09:20 AM |
| ps: 65535 es un inválido no numéricos argumento para opción-p | gogogo | Sun Solaris | 5 | 11-19-2006 06:20 PM |
| su opción | lesstjm | UNIX para usuarios avanzados y expertos | 1 | 11-02-2005 01:54 PM |
| corte opción-f | 435 Gavea | UNIX for Dummies Preguntas y Respuestas | 1 | 11-10-2003 05:50 PM |
![]() |
|
|
Linkback vínculo | Herramientas de hilo | Buscar en este Hilo | Tasa de Hilo | Modos de visualización |
|
|
|
||||
|
seguido de la opción: si la opción de tomar el próximo argumento de que faltan con getopts
Hola a todos,
Estoy analizar opciones de línea de comandos utilizando getopts. El problema es que el argumento obligatorio que las opciones siguientes ":" está tomando como argumento siguiente opción si no es seguido por cualquier argumento. A continuación se muestra la secuencia de comandos: mientras getopts: hd: t: s: l : f: optarhacer caso "$ optar" en -h | - \?) utilización;; -d) DEBUG \u003d true; SCRIPT_LOG_LEVEL exportación \u003d DEBUG;; -t) DEVTYPE \u003d "$ OPTARG";; -s) SIG_IP \u003d "$ OPTARG"; exportación SOCKS5_SERVER \u003d "$ OPTARG: 9001";; -l) HOST_LOGIN \u003d "$ OPTARG";; -p) PASSWORD \u003d "$ OPTARG";; -f) cl_cfile_specd \u003d 1 exportación RUNNING_CONFIG_FILE \u003d "$ OPTARG";; *) Logmsg "no reconocido los parámetros de uso";; esac hecho si ejecuta el script como: $. / script.sh-d-t rdsk-s 12.3.4.5-l gurú-p-f / usr / local / sc.conf la opción-p-f está tomando como argumento. Por favor, ayúdame a la manera de lanzar un mensaje de error y salir de la secuencia de comandos si no es obligatorio argumento pasado al script. También cómo hacer frente a las opciones de tener - es decir - 'log'. Por favor, ayuda con el problema anterior |
|
||||
|
Como una observación en el diseño, tal vez no deberían ser "opciones" si son obligatorios. Después de que el bucle while, comprobar si la contraseña o el archivo de configuración es unset, y si se mueren? No creo que hay una manera estándar para obtener las opciones de largo con getopts; puede rodar su propia, aunque. Código:
while :
do
case $# in 0) break;; esac
case $1 in
-h|-\?|--help) usage;;
-d|--debug) DEBUG=true;export SCRIPT_LOG_LEVEL=DEBUG; shift ;;
-t|--type) DEVTYPE="$2"; shift; shift ;;
-s|--socks) SIG_IP="$2"; export SOCKS5_SERVER="$2:9001"; shift; shift ;;
-l|--login) HOST_LOGIN="$2"; shift; shift;;
-p|--password) PASSWORD="$2"; shift; shift ;;
-f|--config-file) cl_cfile_specd=1
export RUNNING_CONFIG_FILE="$2"; shift; shift ;;
-*) logmsg "Unrecognized param usage";;
esac
done
Lo que muere con gracia cuando una opción que requiere un argumento que no recibe ninguna (es decir, $ 2, no se fija en todos) se deja como ejercicio. El problema de ver que $ 2 es la siguiente opción es la inteligencia artificial (o usted puede inventar un mecanismo para especificar un argumento que comienza con el guión, de modo que pueda prohibir opción argumentos para comenzar con un guión en el caso general. No No sé si eso es bueno o malo usabilidad). |
![]() |
| Marcadores |
| Herramientas de hilo | Buscar en este Hilo |
| Modos de visualización | Vota a este hilo |
|
|