"Conversion README en markdown"
This commit is contained in:
parent
c7a72add50
commit
0ea09f0dcf
137
README.md
137
README.md
@ -135,14 +135,15 @@ Remarque : Les variables SH_SILENCE et SH_NIV_DEBUG sont controlées par les opt
|
|||||||
si la gestion des options a été activée.
|
si la gestion des options a été activée.
|
||||||
|
|
||||||
|
|
||||||
III - Utilisation du socle bash
|
## III - Utilisation du socle bash
|
||||||
-------------------------
|
|
||||||
|
|
||||||
Cette partie decrit sommairmement les quelques regles d usage pour ecrire un script Bash sous le socle DTSI
|
Cette partie decrit sommairmement les quelques regles d usage pour ecrire un script Bash sous le socle DTSI
|
||||||
Ceci ne concerne pas les script Ruby qui ne sont pas pris en charge par le socle decrit ici.
|
Ceci ne concerne pas les script Ruby qui ne sont pas pris en charge par le socle decrit ici.
|
||||||
|
|
||||||
1 - Cartouche
|
### 1 - Cartouche
|
||||||
|
|
||||||
Les scripts doivent commencer par le cartouche ci-dessous :
|
Les scripts doivent commencer par le cartouche ci-dessous :
|
||||||
|
|
||||||
+----------------------------------------------------------------------------------------------------+
|
+----------------------------------------------------------------------------------------------------+
|
||||||
| |
|
| |
|
||||||
| #!/bin/bash |
|
| #!/bin/bash |
|
||||||
@ -188,52 +189,56 @@ III - Utilisation du socle bash
|
|||||||
| |
|
| |
|
||||||
+----------------------------------------------------------------------------------------------------+
|
+----------------------------------------------------------------------------------------------------+
|
||||||
|
|
||||||
Note : Les lignes commencant par 2 "#" sont utilisees pour generer l aide, leur maintient est donc necessaire
|
Note : Les lignes commençant par 2 "#" sont utilisees pour generer l'aide, leur maintient est donc nécéssaire
|
||||||
pour garantir la fiabilite de l information. Ce sont ces lignes, qui sont lues lors de l utilisation de
|
pour garantir la fiabilité de l'information. Ce sont ces lignes, qui sont lues lors de l'utilisation de
|
||||||
l'option par defaut "-h".
|
l'option par defaut "-h".
|
||||||
|
|
||||||
1.1 Elements du cartouche
|
### 1.1 Elements du cartouche
|
||||||
1.1.1 Meta-donnees
|
|
||||||
- <Action> : peut prendre les valeurs suivantes -> cre, ano, evo, typo
|
|
||||||
cre : Creation du script.
|
|
||||||
evo : Evolution du script -> Ajout de nouvelles fonctionnalites, Amelioration du code.
|
|
||||||
ano : Correction du code suite a un comportement inattendu.
|
|
||||||
typo : Ajout de commentaires, de texte ou correction gramatical sans influence sur le code.
|
|
||||||
|
|
||||||
- <Auteur> : <Prenom> <Nom>
|
#### 1.1.1 Meta-données
|
||||||
|
|
||||||
- <Version> : Format x.y.z
|
<Action> : peut prendre les valeurs suivantes -> cre, ano, evo, typo
|
||||||
Pour le suivie des versions on utilisera le versionnement semantique (voir paragraphe III-1.2).
|
* cre : Création du script.
|
||||||
|
* evo : Évolution du script -> Ajout de nouvelles fonctionnalités, Amélioration du code.
|
||||||
|
* ano : Correction du code suite à un comportement inattendu.
|
||||||
|
* typo : Ajout de commentaires, de texte ou corrections gramaticales sans influence sur le code.
|
||||||
|
|
||||||
1.1.2 Paragraphe
|
<Auteur> : <Prenom> <Nom>
|
||||||
- Mise a jour : Ce paragraphe est utilise pour suivre l evolution des versions. La derniere version en
|
|
||||||
vigueur doit etre reportee dans le premier paragraphe.
|
|
||||||
|
|
||||||
- Dependance : Permet de definir la liste ainsi que la version des scripts qui sont appeles.
|
<Version> : Format x.y.z
|
||||||
Dans le cas d un changement cela permet de connaitre les scripts qui sont impactes.
|
Pour le suivi des versions on utilisera le versionnement sémantique (voir paragraphe III-1.2).
|
||||||
Pour le moment aucun script n exploite cette meta-donnee.
|
|
||||||
Present pour un future usage.
|
|
||||||
|
|
||||||
- Liste des options : La declaration des options n est pas obligatoire.
|
#### 1.1.2 Paragraphe
|
||||||
|
|
||||||
Si aucune declaration n est presente alors la librairie params.lib ne fait aucune action.
|
* Mise a jour : Ce paragraphe est utilisé pour suivre l'evolution des versions. La dernière version en
|
||||||
Dans ce cas les options par defaut -h, -log, -hist, -cpt, -s et -dbg ne seront pas disponible.
|
vigueur doit être reportée dans le premier paragraphe.
|
||||||
|
|
||||||
Si le script ne necessite pas d option mais que l on souhaite disposer des options par defaut, il
|
* Dependance : Permêt de définir la liste ainsi que la version des scripts qui sont appelés.
|
||||||
faudras declarer une option bidon. ex: "# @OPT: f:bidon::::::"
|
Dans le cas d'un changement cela permêt de connaître les scripts qui sont impactés.
|
||||||
|
Pour le moment aucun script n'exploite cette méta-donnée qui est presente pour un future usage.
|
||||||
|
|
||||||
Si la declaration existe alors le socle gerera les parametres en entree du script, ainsi que
|
* Liste des options : La déclaration des options n'est pas obligatoire.
|
||||||
les options par defaut -h, -log, -hist, -cpt, -s et -dbg. Ces mots cle sont reserve et ne
|
|
||||||
peuvent pas etre utilise par le script.
|
|
||||||
|
|
||||||
La declaration est realise dans le paragraphe "Liste des options et arguments". Chaque
|
Si aucune déclaration n'est présente alors la bibliothèque params.lib ne fait aucune action.
|
||||||
option est identifiee par l entete de ligne "# @OPT:" suivi de la description.
|
Dans ce cas les options par défaut -h, -log, -hist, -cpt, -s et -dbg ne seront pas disponible.
|
||||||
La description consiste en une liste de parametres separes par ":"
|
|
||||||
|
Si le script ne nécessite pas d'option mais que l'on souhaite disposer des options par défaut, il
|
||||||
|
faudra déclarer une option bidon. ex: "# @OPT: f:bidon::::::"
|
||||||
|
|
||||||
|
Si la déclaration existe alors le socle gèrera les paramètres en entrée du script, ainsi que
|
||||||
|
les options par défaut -h, -log, -hist, -cpt, -s et -dbg. Ces mots clé sont reservés et ne
|
||||||
|
peuvent pas être utilisé par le script.
|
||||||
|
|
||||||
|
La déclaration est réalisée dans le paragraphe "Liste des options et arguments". Chaque
|
||||||
|
option est identifiée par l'entête de ligne "# @OPT:" suivi de la description.
|
||||||
|
|
||||||
|
La description consiste en une liste de paramètres séparés par ":"
|
||||||
<type>:<nom>:<var>:<nb_arg>:<def_val>:<OptE>:<OptI>:<ctl_val>
|
<type>:<nom>:<var>:<nb_arg>:<def_val>:<OptE>:<OptI>:<ctl_val>
|
||||||
|
|
||||||
L ordre des parametre est fige et tous doivent etre presents.
|
L'ordre des paramètre est figé et tous doivent etre présents.
|
||||||
|
|
||||||
8 champs sont obligatoires, soit 7 caracteres ":" (on ne compte pas le caracatere ":" suivant @OPT).
|
8 champs sont obligatoires, soit 7 caracteres ":" (on ne compte pas le caracatere ":" suivant @OPT).
|
||||||
Exemple de declaration valide :
|
Exemple de déclaration valide :
|
||||||
# @OPT: fb:h::0:::
|
# @OPT: fb:h::0:::
|
||||||
# @OPT: fb:s::0:::
|
# @OPT: fb:s::0:::
|
||||||
# @OPT: f:dbg:SH_NIV_DEBUG:0/1:::
|
# @OPT: f:dbg:SH_NIV_DEBUG:0/1:::
|
||||||
@ -242,49 +247,47 @@ III - Utilisation du socle bash
|
|||||||
# @OPT: oM:i:G_INSTANCE:1/1:ALL:dbid:
|
# @OPT: oM:i:G_INSTANCE:1/1:ALL:dbid:
|
||||||
# @OPT: oM:pr:G_PR_NOM:1/1:sq,t,l:
|
# @OPT: oM:pr:G_PR_NOM:1/1:sq,t,l:
|
||||||
|
|
||||||
<type> : Propriete de l attribu defini par l agregation des lettres suivantes
|
* <type> : Propriété de l'attribu défini par l'aggrégation des lettres suivantes:
|
||||||
f -> Option falcultative
|
* f -> Option falcultative
|
||||||
b -> Booleen
|
* b -> Booléen
|
||||||
o -> Option obligatoire
|
* o -> Option obligatoire
|
||||||
M -> Argument transforme en majuscule
|
* M -> Argument transformé en majuscule
|
||||||
|
|
||||||
<nom> : nom de l option (sans le tiret) Attention le nom de l option est senssible a la casse.
|
* <nom> : nom de l'option (sans le tiret). Attention le nom de l'option est sensible à la casse.
|
||||||
|
|
||||||
<var> : nom de la variable dans laquelle sera stockee le(s) argument(s)
|
* <var> : nom de la variable dans laquelle sera stockée le(s) argument(s)
|
||||||
si plusieurs arguments alors un tableau sera initialise <var[n]>
|
si plusieurs arguments alors un tableau sera initialisé <var[n]>
|
||||||
L index [n] commence a zero.
|
L'index [n] commence à zero.
|
||||||
Le nombre d arguments effectivement passes a la commande est "${#<var>[*]}".
|
Le nombre d'arguments éffectivement passés a la commande est "${#<var>[*]}".
|
||||||
L valeur max de l index [n] est "${#<var>[*]} - 1".
|
La valeur max de l'index [n] est "${#<var>[*]} - 1".
|
||||||
|
|
||||||
<nb_arg> : nombre d arguments attendus de la forme "min/max", "min/", "max" ou ""
|
* <nb_arg> : nombre d'arguments attendus de la forme "min/max", "min/", "max" ou ""
|
||||||
si vide ou "0" alors l option est booleene.
|
si vide ou "0" alors l'option est booléene.
|
||||||
la forme "min/" considere le nombre max non determine (infini)
|
la forme "min/" considere le nombre max non determiné (infini)
|
||||||
|
|
||||||
<def_val>: Valeur par defaut assignee a <var>
|
* <def_val> : Valeur par défaut assignée à <var>
|
||||||
Fonctionne si <nb_arg> vaut 0/1 1/1
|
Fonctionne si <nb_arg> vaut 0/1 1/1
|
||||||
|
|
||||||
<OptE> : Liste des options mutellement exclusives separees par une virgule.
|
* <OptE> : Liste des options mutellement exclusives séparées par une virgule.
|
||||||
|
|
||||||
<OptI> : Liste des options inclusives separees par une virgule.
|
* <OptI> : Liste des options inclusives séparées par une virgule.
|
||||||
|
|
||||||
Lors de l initialisation les marqueurs "@OPT" sont lues et analysees.
|
Lors de l'initialisation les marqueurs "@OPT" sont lues et analysées.
|
||||||
Le resultat est compare aux arguments et options sousmis au script
|
Le résultat est comparé aux arguments et options sousmis au script
|
||||||
et les variables suivantes son initialisees ...
|
et les variables suivantes son initialisées ...
|
||||||
|
|
||||||
- SH_OPTION_<nom> : Initialisee a "1" (Vrai) ou "0" (Faux) selon que l option est respectivement utilise ou non.
|
* SH_OPTION_<nom> : Initialisée à "1" (Vrai) ou "0" (Faux) selon que l'option est respectivement utilisée ou non.
|
||||||
Il existe toujours une variable par option declaree. Ceci concerne aussi les options par defaut
|
Il existe toujours une variable par option déclarée. Ceci concerne aussi les options par défaut géré par la bibliothèque params.lib
|
||||||
gere par la librairie params.lib
|
|
||||||
- SH_ARG_<nom> : Cette variable existe uniquement si le champ <var> est null et si le type n est pas booleen.
|
|
||||||
Par defaut elle est initialisee a null ou avec la valeur <def_val>
|
|
||||||
Si le champ <var> est renseigne, alors SH_ARG_<nom> est remplacee pas <var>.
|
|
||||||
Si l option associee peut prendre plusieurs arguments, alors les variables
|
|
||||||
SH_ARG_<nom> ou <var> sont des tableaux dont l index commence a zero.
|
|
||||||
La taille du tableau peut etre recuperee via ${#SH_ARG_<nom>[*]} ou ${#<var>[*]}.
|
|
||||||
|
|
||||||
Les option -h, -s, -log [id], -hist [N] et -dbg N
|
* SH_ARG_<nom> : Cette variable existe uniquement si le champ <var> est null et si le type n'est pas booleen.
|
||||||
sont prises en charge automatiquement. Ces noms sont donc reserves.
|
Par défaut elle est initialisée à null ou avec la valeur <def_val>
|
||||||
|
Si le champ <var> est renseigné, alors SH_ARG_<nom> est remplacée pas <var>.
|
||||||
|
Si l'option associée peut prendre plusieurs arguments, alors les variables SH_ARG_<nom> ou <var> sont des tableaux dont l'index commence a zéro.
|
||||||
|
La taille du tableau peut etre récuperée via ${#SH_ARG_<nom>[*]} ou ${#<var>[*]}.
|
||||||
|
|
||||||
Les options par defaut realisent les actions suivantes :
|
Les option -h, -s, -log [id], -hist [N] et -dbg N sont prises en charge automatiquement. Ces noms sont donc reservées.
|
||||||
|
|
||||||
|
Les options par défaut réalisent les actions suivantes :
|
||||||
|
|
||||||
-h : Affiche l aide du script (Ligne du cartouche qui commence par "##")
|
-h : Affiche l aide du script (Ligne du cartouche qui commence par "##")
|
||||||
-s : Mode silence. Plus d'affichage sur le terminal.
|
-s : Mode silence. Plus d'affichage sur le terminal.
|
||||||
|
Loading…
Reference in New Issue
Block a user