BASH - Mémo pour scripter
Table des matières
Je script, je script, mais parfois, j'ai un sacré trou de mémoire ... et je galère à trouver ce que je cherche sur Internet.
Comment on incrémente une variable ? Comment on fait un SI, un POUR ?
Et bien la réponse se trouve ci-dessous !
Pour mettre dans la variable a la valeur chaîne toto :
De la même façon, on peut mettre dans des variables des nombres :
Pour utiliser ces variables, ajouter un $ devant :
On peut mettre dans une variable le résultat d'une commande shell en encadrant la commande dans $() :
-eq : est égal à
-ne : n'est pas égal à
-gt : est plus grand que
-ge : est plus grand ou égal à
-lt : est plus petit que
-le : est plus petit ou égal à
== : est égal à
!= : n'est pas égal à
-z string : Vrai si la longueur de la chaîne est égale à 0 (variable non initialisée)
-e file : Vrai si le fichier existe
-d file : Vrai si le fichier existe et que c'est un répertoire
-f file : Vrai si le fichier existe et que c'est un fichier ordinaire
-h file : Vrai si le fichier existe et que c'est un lien symbolique
-r file : Vrai si le fichier possède les droits de lecture
-s file : Vrai si le fichier a une taille non nulle
-w file : Vrai si le fichier possède les droits d'écriture
-x file : Vrai si le fichier possède les droits d'exécution
-O file : Vrai si le possesseur est identique à celui qui exécute le test
-G file : Vrai si le possesseur qui exécute le test fait partie du groupe du fichier
-N file : Vrai si le fichier existe et qu'il a été modifié depuis sa dernière lecture
file1 -nt file2 : Vrai si le file1 est plus récent que file2 (date de modification) ou si file1 existe et pas file2
file1 -ot file2 : Vrai si file1 est plus ancien que file2 ou que file2 existe et pas file1
Introduction
Je script, je script, mais parfois, j'ai un sacré trou de mémoire ... et je galère à trouver ce que je cherche sur Internet.
Comment on incrémente une variable ? Comment on fait un SI, un POUR ?
Et bien la réponse se trouve ci-dessous !
Les variables
Affectation de variable
Pour mettre dans la variable a la valeur chaîne toto :
Code BASH :
a="toto"
De la même façon, on peut mettre dans des variables des nombres :
Code BASH :
b=2
Pour utiliser ces variables, ajouter un $ devant :
Code BASH :
echo $a toto
On peut mettre dans une variable le résultat d'une commande shell en encadrant la commande dans $() :
Code BASH :
$ ls -l /etc | wc -l 342 nb=$(ls -l /etc | wc -l) echo $nb 342
Les structures conditionnelles
If (à venir)
For (à venir)
While (à venir)
Les opérateurs de comparaison
Comparaison d'entiers
-eq : est égal à
Code BASH :
if [ "$a" -eq "$b" ]
-ne : n'est pas égal à
Code BASH :
if [ "$a" -ne "$b" ]
-gt : est plus grand que
Code BASH :
if ["$a" -gt "$b" ]
-ge : est plus grand ou égal à
Code BASH :
if [ "$a" -ge "$b" ]
-lt : est plus petit que
Code BASH :
if [ "$a" -lt "$b" ]
-le : est plus petit ou égal à
Code BASH :
if [ "$a" -le "$b" ]
Comparaison de chaînes
== : est égal à
Code BASH :
if [ "$a" == "$b" ]
!= : n'est pas égal à
Code BASH :
if [ "$a" != "$b" ]
-z string : Vrai si la longueur de la chaîne est égale à 0 (variable non initialisée)
Code BASH :
if [ -z "$var" ]
Les tests sur les fichiers
-e file : Vrai si le fichier existe
Code BASH :
if [ -e /tmp/fichier ]
-d file : Vrai si le fichier existe et que c'est un répertoire
Code BASH :
if [ -d /tmp/dossier ]
-f file : Vrai si le fichier existe et que c'est un fichier ordinaire
Code BASH :
if [ -f /tmp/fichier ]
-h file : Vrai si le fichier existe et que c'est un lien symbolique
Code BASH :
if [ -h /tmp/lien ]
-r file : Vrai si le fichier possède les droits de lecture
Code BASH :
if [ -r /tmp/fichier ]
-s file : Vrai si le fichier a une taille non nulle
Code BASH :
if [ -s /tmp/fichier ]
-w file : Vrai si le fichier possède les droits d'écriture
Code BASH :
if [ -w /tmp/fichier ]
-x file : Vrai si le fichier possède les droits d'exécution
Code BASH :
if [ -x /tmp/fichier ]
-O file : Vrai si le possesseur est identique à celui qui exécute le test
Code BASH :
if [ -O /tmp/fichier ]
-G file : Vrai si le possesseur qui exécute le test fait partie du groupe du fichier
Code BASH :
if [ -G /tmp/fichier ]
-N file : Vrai si le fichier existe et qu'il a été modifié depuis sa dernière lecture
Code BASH :
if [ -N /tmp/fichier ]
Comparaison de fichiers
file1 -nt file2 : Vrai si le file1 est plus récent que file2 (date de modification) ou si file1 existe et pas file2
Code BASH :
if [ file1 -nt file2 ]
file1 -ot file2 : Vrai si file1 est plus ancien que file2 ou que file2 existe et pas file1
Code BASH :
if [ file1 -ot file2 ]