Outils d'utilisateurs

Outils du Site


lien:bash:perso:abs

Différences

Cette page vous donne les différences entre la révision choisie et la version actuelle de la page.

Lien vers cette vue

lien:bash:perso:abs [2009/05/24 18:12]
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+
  
 [[http://abs.traduc.org/downloadmanuel.html |Téléchargement de ABS en français]] [[http://abs.traduc.org/downloadmanuel.html |Téléchargement de ABS en français]]
Ligne 92: Ligne 92:
 fichier=${1%.*} #on enlève l'extension .html du fichier fichier=${1%.*} #on enlève l'extension .html du fichier
 Donner dans notre cas la valeur de fichier Donner dans notre cas la valeur de fichier
-    i=1 #on initialise à 1, le numéro du script  + 
-    deb=1 #le début commence à 1 +i=1 #on initialise à 1, le numéro du script  
-    for fin in $fin_script #on sépare les différents scripts+deb=1 #le début commence à 1 
 +for fin in $fin_script #on sépare les différents scripts
 Précisez les valeurs que prendra fin ............... Précisez les valeurs que prendra fin ...............
-    do +<code bash> 
- sed -n "$deb,${fin}p" tmp |sed -e "s/<\/pre>//" -e ";s/<pre class=\"programlisting\">//" -e 's/^ *$//' -e '/./,$!d' >${fichier}_${i}.sh +do 
-        deb=$fin #pour le script suivant +    sed -n "$deb,${fin}p" tmp |sed -e "s/<\/pre>//;s/<pre class=\"programlisting\">//" -e 's/^ *$//;/./,$!d' >${fichier}_${i}.sh 
-        let i=i+1 #on incrémente le numéro de script +    deb=$fin #pour le script suivant 
-    done+    let i=i+1 #on incrémente le numéro de script 
 +done 
 +</code>
 On va faire les boucle manuellement : On va faire les boucle manuellement :
 Avec la première valeur de fin, lancez sed -n "1, ...p" tmp |less Avec la première valeur de fin, lancez sed -n "1, ...p" tmp |less
Ligne 107: 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 117: 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
  
lien/bash/perso/abs.1243181527.txt.gz · Dernière modification: 2009/05/24 18:12 par per