Bonjour,
je suis à la recherche un compilateur shell. Je sais, il y a shc, mais il ne correspond pas du tout à ce que je recherche. shc crypte, certes, mais ça ne m'intéresse pas.
Je veux un programme qui effectue des vérifications sur les scripts shell, comme tout autre compilateur "classique" (lexicale, syntaxique...). Je veux uniquement l'utiliser pour ça, et je n'utiliserai probablement pas les éventuels binaires qu'il me créera.
Quelqu'un sait si un tel programme existe ? Je suis désespéré, après des recherches infructueuses...
Merci.
# une option de ton shell ?
Posté par NeoX . Évalué à 1.
#!/bin/perl -w
au lieu de
#!/bin/perl
dans ton script.
il me semble qu'en bash ou sh tu dois pouvoir faire pareil.
bon ce n'est pas de la compilation mais de la verification dont tu as besoin...
[^] # Re: une option de ton shell ?
Posté par totof2000 . Évalué à 2.
-n Reads commands and checks them for syntax errors, but does not execute them.
This flag is ignored for interactive shells.
pour bash il y a de fortes chancesz que ce soit la même.
[^] # Re: une option de ton shell ?
Posté par DJZiaK . Évalué à 1.
En fait j'aurais aimé un truc qui aille un peu plus loin, qui vérifie par exemple qu'une variable soit bien initialisée avant d'être utilisée, des trucs comme ça.
Cela dit, l'option -n sera sûrement une avancée pour moi, ça m'évitera pas mal de pertes de temps je pense, mais bon. J'aurais espéré un peu plus.
[^] # Re: une option de ton shell ?
Posté par DJZiaK . Évalué à 1.
[^] # Re: une option de ton shell ?
Posté par liberforce (site web personnel) . Évalué à 2.
[^] # Re: une option de ton shell ?
Posté par DJZiaK . Évalué à 1.
Sinon, le prob avec -u c'est que ça exécute le script, et ya pas moyen de le combiner avec -n.
Je me suis donc fait un prog en python qui vérifie si les variables sont bien initialisées (affectées avec '=' ou lues avec un 'read') avant d'être utilisées.
Ca marche plutôt très bien, mais par contre, c'est pas garanti que demain, je me trouve dans un cas que je n'ai pas prévu. Je m'explique : pour détecter l'initialisation d'une variable, je regardais tous les signes '=' précédés de quelque chose. Et ce quelque chose est donc une variable. Le problème est que je m'aperçois au fur et à mesure des cas imprévus : par exemple, ./script.sh --option=toto fait que --option est reconnu comme une variable. Alors je rajoute des tests au fur et à mesure, ce qui n'est pas terrible.
Je voulais donc savoir s'il existe une expression régulière connue, toute faite, qui matche avec les affectations de variables, et une autre qui matche avec les utilisations (en lecture) de variables (commençant par '$').
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.