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 [2022/03/05 19:18] – remove last character of a string phsw | linux:bash [2025/10/26 14:47] (Version actuelle) – add how to generate random numbers phsw | ||
|---|---|---|---|
| Ligne 2: | Ligne 2: | ||
| * [[linux: | * [[linux: | ||
| + | |||
| + | * [[https:// | ||
| + | * [[https:// | ||
| + | * [[http:// | ||
| + | * [[https:// | ||
| + | * [[https:// | ||
| + | * [[https:// | ||
| + | * [[https:// | ||
| + | |||
| Ligne 61: | Ligne 70: | ||
| * [[https:// | * [[https:// | ||
| * [[https:// | * [[https:// | ||
| + | * [[https:// | ||
| <code bash> | <code bash> | ||
| Ligne 149: | Ligne 159: | ||
| echo "Git folder doesn' | echo "Git folder doesn' | ||
| fi | fi | ||
| + | </ | ||
| + | |||
| + | |||
| + | === Comparer deux dates === | ||
| + | |||
| + | [[https:// | ||
| + | |||
| + | <code bash> | ||
| + | todate=$(date -d 2013-07-18 +%s) | ||
| + | cond=$(date -d 2014-08-19 +%s) | ||
| + | |||
| + | if [ $todate -ge $cond ]; | ||
| + | then | ||
| + | break | ||
| + | fi | ||
| </ | </ | ||
| Ligne 253: | Ligne 278: | ||
| <code bash> | <code bash> | ||
| user=${SUDO_USER: | user=${SUDO_USER: | ||
| - | </ | ||
| - | |||
| - | |||
| - | |||
| - | |||
| - | ==== Quitter à la moindre erreur ==== | ||
| - | |||
| - | <code bash> | ||
| - | set -e | ||
| </ | </ | ||
| Ligne 286: | 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 405: | Ligne 423: | ||
| foo=" | foo=" | ||
| echo " | echo " | ||
| + | </ | ||
| + | |||
| + | |||
| + | === Enlever un préfixe === | ||
| + | |||
| + | [[https:// | ||
| + | <code bash> | ||
| + | v="/ | ||
| + | prefix="/ | ||
| + | |||
| + | echo ${v#" | ||
| </ | </ | ||
| Ligne 439: | Ligne 468: | ||
| ' | ' | ||
| </ | </ | ||
| + | |||
| + | |||
| + | ==== 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:// | ||
| + | <code bash> | ||
| + | set -o pipefail | ||
| + | |||
| + | gcc ... 2>&1 | tee out | ||
| + | res=$? | ||
| + | </ | ||
| + | |||
| + | |||
| + | === 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:// | ||
| + | |||
| + | 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 | ||
| + | </ | ||
| + | |||