![]() |
|
|
google unix.com
|
|||||||
| Forums | S'inscrire | Forum Rules | Liens | Albums | FAQ | Liste des membres | Calendrier | Recherche | Aujourd'hui, les postes | Marquer les forums comme lus |
| De programmation et de script Shell Posez vos questions à propos de KSH, CSH, SH, BASH, PERL, PHP, SED, awk et d'autres scripts shell et les langages de script shell ici. |
Plus d'UNIX et Linux Forum Sujets Vous trouverez peut-être utile
|
||||
| Fil | Thread Starter | Forum | Réponses | Last Post |
| g + + et de l'option-R | eternalflame | High Level Programming | 0 | 04-14-2008 02:57 PM |
| l'option-n | Ravi Raj Kumar | De programmation et de script Shell | 1 | 01-03-2008 09:20 AM |
| ps: 65535 est invalide argument non-numérique pour l'option-p | gogogo | SUN Solaris | 5 | 11-19-2006 06:20 PM |
| su option | lesstjm | UNIX for Advanced & Expert Users | 1 | 11-02-2005 01:54 PM |
| cut-f option | 435 Gavea | UNIX pour les nuls Questions et réponses | 1 | 11-10-2003 05:50 PM |
![]() |
|
|
LinkBack | Thread Tools | Recherche sur ce Thread | Rate Thread | Modes d'affichage |
|
|
|
||||
|
suivie par l'option: prendre l'option suivante si argument manquant à getopts
Salut à tous,
Je suis d'analyse en utilisant les options de ligne de commande getopts. Le problème est que les options obligatoires argument suivant: "l'option suivante est de prendre comme argument si elle n'est pas suivie par aucun argument. Voici le script: tandis que getopts: hd: t: s: l : f: optfaire case "$ opt" dans -h | - \?) usage;; -d) DEBUG \u003d true; export DEBUG \u003d SCRIPT_LOG_LEVEL;; -t) DEVTYPE \u003d "$ optarg";; -s) SIG_IP \u003d "$ optarg"; exportation SOCKS5_SERVER \u003d "$ optarg: 9001";; -l) HOST_LOGIN \u003d "$ optarg";; -p) PASSWORD \u003d "$ optarg";; -f) cl_cfile_specd \u003d 1 l'exportation RUNNING_CONFIG_FILE \u003d "$ optarg";; *) Logmsg "Unrecognized param usage";; esac fait si je lance le script en tant que: $. / script.sh-d-t-rdsk s 12.3.4.5-gourou de l-p-f / usr / local / sc.conf l'option-p-f est prise comme argument. S'il vous plaît, aidez-moi comment lancer un message d'erreur et de sortie, si le script n'est pas obligatoire argument passé au script. Aussi la façon de traiter les options - c'est-à-dire - logfile. S'il vous plaît, aidez avec le problème ci-dessus |
|
||||
|
Comme une remarque sur la conception, peut-être ils ne devraient pas être "options" si elles sont obligatoires. Après la boucle while, de vérifier si le mot de passe ou le fichier de configuration est désactivé, et mourir si elle est? Je ne pense pas qu'il ya un long chemin pour obtenir des options avec getopts; vous pouvez rouler vous-même, si. Code:
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
Making it die gracieusement lors d'une option qui nécessite un argument ne reçoit pas (c'est-à-dire $ 2 n'est pas du tout) est laissé comme un exercice. Le problème de ce que $ 2 est l'option suivante est l'intelligence artificielle (ou vous pouvez inventer un mécanisme distinct pour spécifier un argument qui commence avec tableau de bord, de sorte que vous pouvez interdire l'option arguments à commencer par un tiret dans le cas général. Je ne sais si c'est une bonne ou une mauvaise ergonomie). |
![]() |
| Bookmarks |
| Thread Tools | Recherche sur ce Thread |
| Modes d'affichage | Rate this thread |
|
|