Comment puis-je ajouter une aide de la méthode à un script shell?
Comment puis-je vérifier si un -h
attribut a été passée dans un script shell? Je voudrais afficher un message d'aide lorsqu'un utilisateur appelle myscript.sh -h
.
- Des exemples: stackoverflow.com/questions/14008125/...
Vous devez vous connecter pour publier un commentaire.
voici un exemple pour bash:
Pour utiliser cette l'intérieur d'une fonction:
"$FUNCNAME"
au lieu de$(basename "$0")
local OPTIND OPTARG
avant d'appelergetopts
basename
avec le premier tableau de bord."$FUNCNAME"
pas"$0"
. Aussi, ajouterlocal OPTIND OPTARG
FUNCNAME
œuvres. J'ai tous mes fonctions à l'intérieur d'un seul fichier, donc c'est parfait pour les étendant en quelque chose d'utile pour les autres.usage
texte non formaté."$usage"
tous place de l'utiliser.Le premier argument d'un script shell est disponible en tant que variable
$1
, donc le plus simple de mise en œuvre seraientMais ce anubhava dit.
[
est conforme à POSIX version.function
: Vous devez remplacerexit 0
avecreturn
si vous ne voulez pas mettre fin à votre shell après l'exécution de votre fonction. (Je l'ai fait avant de )ici est une partie-je l'utiliser pour démarrer un serveur vnc
C'est un peu bizarre que j'ai placé la start stop redémarrer dans un autre cas, mais il devrait fonctionner
Si vous n'avez qu'une seule option pour vérifier et il le sera toujours la première option (
$1
) puis l'option la plus simple est uneif
avec un test ([
). Par exemple:Noter que pour la compatibilité posix
=
fonctionnera aussi bien que==
.La raison pour laquelle le
$1
doit être entre guillemets, c'est que si il n'y a pas de$1
alors le shell va essayer de couririf [ == "-h" ]
et échouer parce==
a été seulement donné un seul argument quand on s'attendait à deux:Comme suggéré par d'autres, si vous avez plus d'une option simple, ou besoin de vos options pour accepter des arguments, alors vous devriez certainement aller pour le supplément de la complexité de l'utilisation de
getopts
. Comme un guide de référence rapide, j'aime 60 deuxième getopts tutoriel.†Vous pouvez également envisager de la
getopt
programme au lieu de construit dans le shellgetopts
. Il permet l'utilisation de longue options et les options après non les arguments d'option (par exemple,foo a b c -v
plutôt que de simplementfoo -v a b c
). Cette Stackoverflow répondre explique comment utiliser GNUgetopt
.† jeffbyrnes mentionné que le original link est mort, mais heureusement, le machine à remonter le temps avait archivé-il.
Mieux utiliser getopt installation de bash. S'il vous plaît regardez cette Q&A pour plus d'aide: À l'aide de getopts en shell bash script pour obtenir de longue et de courte options de ligne de commande
je pense que vous pouvez utiliser pour ce...
Je il suffit de télécharger le Manuel en Ligne du fichier et le récupérer avec
curl
.Par exemple, le code ci-dessous est de la récupération à partir de Github.