Table des matières
Aide mémoire Bash
Jokers
? | remplace un seul caractère |
* | remplace 0 ou plusieurs caractères |
[] | remplace par n'importe quel caractère situé à l'interieur des crochets |
[ - ] | remplace par un caractère qui se situe dans la suite ( 0-9 de 0 à 9, a-z de a à z) |
[!] | le contraire de [] |
Groupement de commandes
commande1 ; commande2 | Lance commande2 après commande 1 |
commande1 | commande2 | Renvoie le résultat de commande1 à commande2 |
commande & | Lance commande en arrière-plan |
commande1 || commande2 | SINON : ne lance commande2 que si commande1 échoue |
commande2 && commande2 | ET : Lance commande1 si commande1 réussi |
( liste ) | Groupe de commandes |
{ liste; } | Groupe de commandes |
`Commande` ou $(commande) | Substitution de commandes |
Les redirections
Entrée/Sortie standard ( E/S ) | |
---|---|
0 | Entrée Standard ( clavier ) |
1 | Sortie Standard ( écran ) |
2 | Erreur Standard ( écran ) |
Entrée/Sortie standard | |
> fichier | Redirection en sortie vers un fichier, écrase le fichier si le fichier existe |
< fichier | L'entrée standard est un fichier |
» fichier | Redirection en sortie vers un fichier, sans écrasement de fichiers |
« mot | Lecture au clavier jusqu'à “mot” |
<> fichier | L'entrée et la sortie standard est un fichier |
Les tests
Attributs de fichiers | |
---|---|
-b fichier | Vrai si le fichier existe et est un fichier en mode bloc |
-c fichier | Vrai si le fichier existe et est un fichier en mode caractère |
-d fichier | Vrai si le fichier existe et est un répertoire |
-e fichier | Vrai si le fichier existe |
-f fichier | Vrai si le fichier est un fichier ordinaire |
-g fichier | Vrai si le fichier existe et est groupe sid ( sgid ) |
-h fichier | Vrai si le fichier existe et est un lien symbolique |
-k fichier | Vrai si le fichier existe et est sticky bit |
-p fichier | Vrai si le fichier existe et est une pipe nommé ( FIFO ) |
-r fichier | Vrai si le fichier existe et si l'utilisateur à le droit de le lire |
-s fichier | Vrai si le fichier existe et à une taille supérieure à 0 ( non-vide ) |
-t fd | True if fichier descriptor fd is open and refers to a terminal |
-u fichier | Vrai si le fichier existe et est suid |
-w fichier | Vrai le fichier existe et si l'utilisateur à le droit d'y écrire |
-x fichier | Vrai si le fichier existe et peut être exécuté par l'utilisateur |
-O fichier | Vrai si le fichier existe et possède même id que l'utilisateur |
-G fichier | Vrai si le fichier existe et possède le même gid que l'utilisateur |
-L fichier | Vrai si le fichier existe et est un lien symbolique |
-S fichier | Vrai si le fichier existe est un Socket |
Comparaison de fichiers | |
---|---|
FICHIER1 -ef FICHIER2 | Vrai si les deux fichiers ont le même device et numéro d'inode |
FICHIER1 -nt FICHIER2 | Vrai si FICHIER1 est plus récent ( par rapport à la date de modification ) que FICHIER2 |
FICHIER1 -ot FICHIER2 | Vrai si FICHIER1 est plus vieux ( par rapport à la date de modification ) que FICHIER2 |
Chaînes de caractères | |
---|---|
-n CHAÎNE_DE_CARACTÈRES | Vrai si la chaîne n'est pas vide |
-z CHAÎNE_DE_CARACTÈRES | Vrai si le chaîne est vide |
CHAINE1 = CHAINE2 | Vrai si les deux chaînes sont identiques |
CHAINE1 != CHAINE2 | Vrai si les deux chaînes sont différentes |
Sur les nombres entiers | |
---|---|
ENTIER1 -eq ENTIER2 | Vrai si ENTIER1 est égal à ENTIER2 |
ENTIER1 -ge ENTIER2 | Vrai si ENTIER1 est plus grand ou égal à ENTIER2 |
ENTIER1 -gt ENTIER2 | Vrai si ENTIER1 est supérieur à ENTIER2 |
ENTIER1 -le ENTIER2 | Vrai si ENTIER1 est plus petit ou égal à ENTIER2 |
ENTIER1 -lt ENTIER2 | Vrai si ENTIER1 est plus petit que ENTIER2 |
ENTIER1 -ne ENTIER2 | Vrai si ENTIER1 est différent de ENTIER2 |
Les variables de paramètres
$0 | Nom du script en cours |
$1, $2, $3 … | Argument du script en cours |
$# | Nombre d'arguments |
$* | Tous les paramètres ( espace se séparation dépend de $IFS ) |
$@ | Idem $* mais ne dépend pas d'$IFS |
$$ | PID du script |
$! | PID du dernier processus shell lancé en arrière-plan |
$? | Code retour de la dernière commande |
Les substitutions de variables
$variable ou ${variable} | valeur de $variable |
${#variable} | Nombre de caractères de la variable $variable |
${variable:-mot} | Renvoie $variable si elle est existe est non nulle, sinon renvoie “ mot “ |
${variable:+mot} | Renvoie ” mot ” si la variable $variable existe et est non nulle, sinon elle retourne 0 |
${variable:=mot} | Affecte “ mot ” à $variable si elle est nulle |
${variable:?mot} | Affiche “ mot ” si la $variable n'existe pas, et termine la commande ou le script |
${variable#expression} | Si expression = début de variable → supprime la plus partie reconnue et retourne le reste |
${variable##expression} | Si expression = début de variable → supprime la plus grande partie reconnue et retourne le reste |
${variable%expression} | Si expression = fin de variable → supprime la plus partie reconnue et retourne le reste |
${variable%%expression} | Si expression = fin de variable → supprime la plus grande partie reconnue et retourne le reste |
${paramètre/motif/chaîne} | Remplace motif par chaîne dans le contenu de la variable juste une fois (a=toto ; echo ${a/to/cou} ⇒ tocou) |
${paramètre//motif/chaîne} | Remplace motif par chaîne dans le contenu de la variable partout (a=toto ; echo ${a//to/cou} ⇒ coucou) |
Structures de contrôles
if condition then commandes1 commandes2 ; … else autrecommande1; autrecommande2 fi | SI condition ALORS … SINON … FIN_SI |
for i in liste do commande1 ; commande2 … done | POUR i DANS la_liste FAIT …. FIN_FAIT |
until condition do commande1; commande2 … done | JUSQU'A CE QUE condition FAIT … FIN_FAIT |
while condition do commande1; commande2 … done | TANT QUE condition FAIT … FIN_FAIT |