Chaque fichier commence par le shebang
#!/bin/bash
Faire le plus possible que le code soit Posix compliant bashism : utiliser de la syntaxe bash qui n'est pas posix compliant
Tester son script avec
shellcheck NOM_SCRIPT
COMMANDE > /dev/null 2>&1
COMMANDE > /var/log/mon.log 2>&1
Les opérateurs de tests disponibles sont, pour les objets du système de fichiers :
[ -e $FILE ]
[ -s $FILE ]
[ -f $FILE ]
[ -r $FILE ]
[ -w $FILE ]
[ -x $FILE ]
[ -d $FILE ]
[ -N $FILE ]
Les opérateurs de tests disponibles sont, pour les chaînes :
[ c1 = c2 ]
[ c1 != c2 ]
Zero
),[ -z c ]
Non zero
).[ -n c ]
Comparaison | Résultat | Calcul |
---|---|---|
0 et 0 | 0 | 0 × 0 = 0 |
0 et 1 | 0 | 0 × 1 = 0 |
1 et 0 | 0 | 1 × 0 = 0 |
1 et 1 | 1 | 1 × 1 = 1 |
Les deux assertions doivent être vérifiées pour que la condition le soit aussi.
Comparaison | Résultat | Calcul |
---|---|---|
0 ou 0 | 0 | 0 + 0 = 0 |
0 ou 1 | 1 | 0 + 1 = 1 |
1 ou 0 | 1 | 1 + 0 = 1 |
1 ou 1 | 1 | 1 + 1 = 1 |
Dès que l'une des deux assertions est vérifiée, la condition globale l'est aussi.
echo "$(date '+%F %T') test"
cat « EOF permet d'afficher du texte avec le même formatage jusqu'au caractère EOF.
cat << EOF Tool for Security Patch Management. Usage: $0 [options] OPTIONS: -h Display help -v Be verbose -u Update & Download only Security updates -f Force Security Upgrade -s Safe Security Upgrade (ask host server before, need to define --host and --port) -i Ignore package during upgrade whose name contains one of this param, separated with ',' or '|' or ' '. Example : "mysql,apache" -l Log file (Default : /var/log/securityUpgrades.log) -r Host asked for safe upgrade -p Remote host's port EOF
Analyse de paramètres et message d'erreurs avec Getops : http://www.quennec.fr/book/export/html/341
#!/bin/bash while read ligne; do echo $ligne done < fichier.txt
Commenter blocs de texte ⇒ ctrl+maj+/
https://fr.wikibooks.org/wiki/Programmation_Bash/Tests - Contenus sous licence CC BY-SA