Cette page vous donne les différences entre la révision choisie et la version actuelle de la page.
lien:bash:perso:abs [2009/05/24 18:41] per |
lien:bash:perso:abs [2009/05/24 21:08] (Version actuelle) per |
||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
+ | [[.:utilitaires|retour]] | ||
==== Guide avancé d'écriture des scripts Bash ==== | ==== Guide avancé d'écriture des scripts Bash ==== | ||
- | [[ABS |Advanced Bash-Scripting Guide]] | ||
**Une exploration en profondeur de l'art de la programmation shell** | **Une exploration en profondeur de l'art de la programmation shell** | ||
Ligne 99: | Ligne 99: | ||
<code bash> | <code bash> | ||
do | do | ||
- | sed -n "$deb,${fin}p" tmp |sed -e "s/<\/pre>//" -e "s/<pre class=\"programlisting\">//" -e 's/^ *$//' -e '/./,$!d' >${fichier}_${i}.sh | + | sed -n "$deb,${fin}p" tmp |sed -e "s/<\/pre>//;s/<pre class=\"programlisting\">//" -e 's/^ *$//;/./,$!d' >${fichier}_${i}.sh |
- | deb=$fin #pour le script suivant | + | deb=$fin #pour le script suivant |
- | let i=i+1 #on incrémente le numéro de script | + | let i=i+1 #on incrémente le numéro de script |
- | done | + | done |
</code> | </code> | ||
On va faire les boucle manuellement : | On va faire les boucle manuellement : | ||
Ligne 110: | Ligne 110: | ||
On recommence la boucle for avec fin qui prend la deuxième valeur | On recommence la boucle for avec fin qui prend la deuxième valeur | ||
lancez sed -n " ...,...p" tmp | lancez sed -n " ...,...p" tmp | ||
- | Pour ce deuxième cas, lancez sed -n "...,...p" tmp |sed -e "s/<\/pre>//" -e "s/<pre class=\"programlisting\">//" | + | Pour ce deuxième cas, lancez |
+ | <code bash> | ||
+ | sed -n "...,...p" tmp |sed -e "s/<\/pre>//" -e "s/<pre class=\"programlisting\">//" | ||
+ | </code> | ||
Notez les différences. | Notez les différences. | ||
+ | <code bash> | ||
Enfin, lancez sed -n "...,...p" tmp |sed -e "s/<\/pre>//" -e "s/<pre class=\"programlisting\">//" -e 's/^ *$//' -e '/./,$!d' | Enfin, lancez sed -n "...,...p" tmp |sed -e "s/<\/pre>//" -e "s/<pre class=\"programlisting\">//" -e 's/^ *$//' -e '/./,$!d' | ||
+ | </code> | ||
+ | |||
+ | === Comparaison des résultats avec diff === | ||
+ | <code bash> | ||
+ | sed -n " ...,...p" tmp >tmp1 | ||
+ | sed -n "...,...p" tmp |sed -e "s/<\/pre>//" -e "s/<pre class=\"programlisting\">//" >tmp2 | ||
+ | sed -n "...,...p" tmp |sed -e "s/<\/pre>//" -e "s/<pre class=\"programlisting\">//" -e 's/^ *$//' -e '/./,$!d' >tmp3 | ||
+ | puis diff tmp1 tmp2 | ||
+ | enfin diff tmp2 tmp3 | ||
+ | </code> | ||
==== Proposez un nouveau script, qui extrait tous les scripts des pages html ==== | ==== Proposez un nouveau script, qui extrait tous les scripts des pages html ==== | ||
Ligne 120: | Ligne 133: | ||
Pour chaque fichier html de la liste | Pour chaque fichier html de la liste | ||
faire | faire | ||
- | ./html2sh ........ | + | ./html2sh ........ |
fin de la boucle for | fin de la boucle for | ||