Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
| linux:bash [2024/12/19 16:47] – [Ne pas développer *] precise what this is about phsw | linux:bash [2025/10/26 14:47] (Version actuelle) – add how to generate random numbers phsw | ||
|---|---|---|---|
| Ligne 9: | Ligne 9: | ||
| * [[https:// | * [[https:// | ||
| * [[https:// | * [[https:// | ||
| - | + | | |
| - | + | ||
| - | + | ||
| - | ==== Ne pas développer | + | |
| - | + | ||
| - | Pour éviter que '' | + | |
| Ligne 283: | Ligne 278: | ||
| <code bash> | <code bash> | ||
| user=${SUDO_USER: | user=${SUDO_USER: | ||
| - | </ | ||
| - | |||
| - | |||
| - | |||
| - | |||
| - | ==== Quitter à la moindre erreur ==== | ||
| - | |||
| - | <code bash> | ||
| - | set -e | ||
| </ | </ | ||
| Ligne 316: | Ligne 302: | ||
| <code bash> | <code bash> | ||
| - | while [ "$1" != "" | + | set -u |
| + | |||
| + | while [ $# -gt 0 ]; do | ||
| case $1 in | case $1 in | ||
| -f | --file ) shift | -f | --file ) shift | ||
| Ligne 435: | Ligne 423: | ||
| foo=" | foo=" | ||
| echo " | echo " | ||
| + | </ | ||
| + | |||
| + | |||
| + | === Enlever un préfixe === | ||
| + | |||
| + | [[https:// | ||
| + | <code bash> | ||
| + | v="/ | ||
| + | prefix="/ | ||
| + | |||
| + | echo ${v#" | ||
| </ | </ | ||
| Ligne 471: | Ligne 470: | ||
| - | ==== Récupérer le code de retour dans un pipe ==== | + | ==== Générer un nombre aléatoire ==== |
| + | |||
| + | * [[https:// | ||
| + | |||
| + | <code bash> | ||
| + | echo $((1 + $RANDOM % 10)) | ||
| + | od -t u -N 4 / | ||
| + | </ | ||
| + | |||
| + | |||
| + | |||
| + | ==== Options Bash ==== | ||
| + | |||
| + | |||
| + | |||
| + | === Récupérer le code de retour dans un pipe === | ||
| Pour récupérer le code de retour de la première commande qui échoue dans un pipe ([[https:// | Pour récupérer le code de retour de la première commande qui échoue dans un pipe ([[https:// | ||
| Ligne 482: | Ligne 496: | ||
| - | ==== Changer la couleur du texte affiché ==== | + | === Ne pas développer * === |
| + | Pour éviter que '' | ||
| + | |||
| + | |||
| + | |||
| + | === Quitter à la moindre erreur === | ||
| + | |||
| + | <code bash> | ||
| + | set -e | ||
| + | </ | ||
| + | |||
| + | |||
| + | === Changer des options pour une portion de script === | ||
| + | |||
| + | Mettre la portion entre parenthèses ([[https:// | ||
| + | <code bash> | ||
| + | #!/bin/bash | ||
| + | |||
| + | set -eu | ||
| + | |||
| + | ( | ||
| + | set -o pipefail | ||
| + | set +e | ||
| + | |||
| + | false | cat | ||
| + | echo "after $?" | ||
| + | ) | ||
| + | |||
| + | echo " | ||
| + | |||
| + | false | cat | ||
| + | echo "after $?" | ||
| + | |||
| + | false | ||
| + | echo "sould not print" | ||
| + | </ | ||
| + | |||
| + | |||
| + | ==== Couleurs ==== | ||
| + | |||
| + | Changer la couleur du texte affiché : | ||
| * [[https:// | * [[https:// | ||
| + | |||
| + | Visualiser le rendu de toutes les couleurs ([[https:// | ||
| + | <code bash> | ||
| + | for x in {0..8}; do for i in {30..37}; do for a in {40..47}; do echo -ne " | ||
| + | |||
| + | msgcat --color=test | ||
| + | </ | ||