Parfois, je veux à très bon marché, hack certaines options de ligne de commande dans un script simple. Une façon amusante de le faire, sans traiter getopts ou de l'analyse ou de quoi que ce soit, est:
...
$quiet = ARGV.delete('-d')
$interactive = ARGV.delete('-i')
...
# Deal with ARGV as usual here, maybe using ARGF or whatever.
Ce n'est pas tout à fait normal Unix syntaxe des options, car il va accepter les options non-option paramètres de ligne de commande, comme dans "myprog -i foo bar -q
", mais je peux vivre avec ça. (Certaines personnes, comme par exemple la Subversion développeurs préfèrent cette. Parfois, je le fais aussi).
Une option qui est tout simplement la présence ou l'absence ne peut pas être mis en œuvre de façon beaucoup plus simple que le précédent. (Une affectation, un appel de fonction, un effet de bord.) Est-il aussi un moyen simple de traiter avec des options qui prend un paramètre, tel que "-f
nom de fichier"?
EDIT:
Un point que je n'ai pas fait plus tôt, car il n'était pas devenu clair pour moi jusqu'à ce que l'auteur de Gourgandine mentionné que la bibliothèque tenir "dans un [800-ligne] fichier," c'est que je suis à la recherche non seulement pour le nettoyage de la syntaxe, mais une technique qui a les caractéristiques suivantes:
L'intégralité du code peuvent être inclus dans le fichier de script (sans submerger le script lui-même, qui peut être seulement un couple de douzaine de lignes), de sorte que l'on peut supprimer un seul fichier dans un
bin
dir sur n'importe quel système avec un standard de Ruby 1.8.[5-7] installation et d'utilisation, ilLe code est petit et assez simple que l'on peut se rappeler assez pour taper directement dans le code qui fera l'affaire, plutôt que de couper et coller à partir de quelque part d'autre. Pensez à la situation où vous vous trouvez sur la console d'un pare-feu rompre avec aucun accès à Internet, et que vous voulez jeter un rapide script pour un client à utiliser.