Algorythme utile : https://fr.wikipedia.org/wiki/Tri_rapide

Voici un template pour faire vos scripts :

Vérificateur de script

https://www.shellcheck.net

Si besoin de debug :

  • Activer l’option set -x ou utiliser bash -x
  • Rediriger les sorties vers un fichier : nom_appli.sh &> monfichier

Logger

https://github.com/blop03/script-infra_perso/blob/master/backup_bdd_mariadb_logger.sh

Information diverses

Variables

var=val ou var="a b"   affectation de la variable « var »
$var ou ${var}   contenu de la variable « var »
${#var}   longueur de la variable « var »
$?   code retour de la dernière commande

Tableaux

tab[0]=val   affectation du premier enregistrement du tableau « tab »
${tab[0]} ou $tab   contenu du premier enregistrement du tableau « tab »
${tab[11]}   contenu du douzième enregistrement du tableau « tab »
${tab[*]}   ensemble des enregistrements du tableau « tab »
${#tab[11]}   longueur du douzième enregistrement du tableau « tab »
${#tab[*]}   nombre d’enregistrements du tableau « tab »

Source : http://www.quennec.fr/trucs-astuces/syst%C3%A8mes/gnulinux/programmation-shell-sous-gnulinux/aspects-avanc%C3%A9s-de-la-programmation-shell/tableaux

Faire des menu

http://www.quennec.fr/trucs-astuces/syst%C3%A8mes/gnulinux/programmation-shell-sous-gnulinux/aspects-avanc%C3%A9s-de-la-programmation-shell/gestion-de-menu-avec-select

fonction

Bonne pratique

Source : http://fahdshariff.blogspot.fr/2013/10/shell-scripting-best-practices.html

Ces bonnes pratiques ont été inclut dans les templates

  1. Nommer son script avec l’extension « .sh » (facilite la recherche)
  2. Shabang : #!/bin/bash
  3. Ne pas oublier de mettre des quotes a ses paramètres
  4. Documenter les fonctions exemple : # $1 – the name of the input file
  5. Finir son script par exit 0
  6. declare -r var
  7. Lock du fichier
  8. utiliser le set -e
  9. Utiliser $(command1) plutot que a=`command1`
  10. Log
    1. Si vous utilisez syslog-ng/rsyslog utiliser logger
    2. Si vous n’utiliser pas ces solutions :
      1. exec 1>>/var/log/sauvegarde_differentielle.log
      2. exec 2>>/var/log/sauvegarde_differentielle_error.log
    3. Afficher logger
      1. echo logger afin d’afficher dans le terminal
  11. (facultatif ) module de prerequis
Shell
HTML

If

http://www.quennec.fr/trucs-astuces/syst%C3%A8mes/gnulinux/programmation-shell-sous-gnulinux/aspects-avanc%C3%A9s-de-la-programmation-shell/tableaux

Des exemples ont été mis pour un if et un for

If

if commande1
then
commande2
commande3

else
commande4

fi

Liste de valeurs contenue dans une variable

for var in $variable
do
commande
done