Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
informatique:outils:bash [2024/10/30 10:35] – [Barre de progression] bn8 | informatique:outils:bash [2025/04/24 08:31] (Version actuelle) – [Fonctions utiles] bn8 | ||
---|---|---|---|
Ligne 7: | Ligne 7: | ||
* Pour chercher explicitement **à la fin** du contenu de la variable : '' | * Pour chercher explicitement **à la fin** du contenu de la variable : '' | ||
* Pour remplacer **toutes les occurences** : '' | * Pour remplacer **toutes les occurences** : '' | ||
- | * Mise en **majuscule** : '' | + | * Mise en **majuscule** |
* Pour mettre **tout en majuscule** : '' | * Pour mettre **tout en majuscule** : '' | ||
- | * Mise en **minuscule** : '' | + | * Mise en **minuscule** |
* Pour mettre **tout en minuscule** : '' | * Pour mettre **tout en minuscule** : '' | ||
Ligne 25: | Ligne 25: | ||
* avec un retour à la ligne : '' | * avec un retour à la ligne : '' | ||
* avec un espace (ou autre caractère unique et " | * avec un espace (ou autre caractère unique et " | ||
+ | * ajouter des valeurs à un tableau existant : '' | ||
+ | * ajouter depuis un fichier : '' | ||
+ | * ajouter depuis la sortie d'une commande : '' | ||
* Note : voir la fonction '' | * Note : voir la fonction '' | ||
Ligne 183: | Ligne 186: | ||
# Output: | # Output: | ||
# declare -a myarray=([0]=" | # declare -a myarray=([0]=" | ||
+ | </ | ||
+ | |||
+ | === check_regex === | ||
+ | |||
+ | <code bash> | ||
+ | function check_regex() { | ||
+ | [[ $(grep -Ec " | ||
+ | return 1 | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | === check_int === | ||
+ | |||
+ | **Pré-requis :** [[# | ||
+ | |||
+ | <code bash> | ||
+ | function check_int() { | ||
+ | check_regex " | ||
+ | [[ -n " | ||
+ | [[ -n " | ||
+ | return 0 | ||
+ | } | ||
</ | </ | ||
Ligne 196: | Ligne 221: | ||
[[ $d -gt 0 ]] && printf '%d days and ' $d | [[ $d -gt 0 ]] && printf '%d days and ' $d | ||
printf ' | printf ' | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | === format_size === | ||
+ | |||
+ | **Pré-requis :** [[# | ||
+ | |||
+ | <code bash> | ||
+ | declare -ra _FORMAT_SIZE_UNITS=( tb gb mb kb b ) | ||
+ | declare -rA _FORMAT_SIZE_UNITS_FACTOR=( | ||
+ | [" | ||
+ | function format_size() { | ||
+ | local size="" | ||
+ | for opt in " | ||
+ | opt=" | ||
+ | if [[ ${#opt} -gt 2 ]] && \ | ||
+ | [[ " | ||
+ | unit=${opt: | ||
+ | elif [[ ${#opt} -gt 1 ]] && \ | ||
+ | [[ " | ||
+ | unit=${opt: | ||
+ | elif [[ " | ||
+ | allow_zero=1 | ||
+ | elif [[ -z " | ||
+ | size=$opt | ||
+ | [[ " | ||
+ | check_int " | ||
+ | else | ||
+ | echo -n " | ||
+ | return 1 | ||
+ | fi | ||
+ | done | ||
+ | if [[ $size -eq 0 ]]; then | ||
+ | [[ $allow_zero -eq 0 ]] && return | ||
+ | echo -n " | ||
+ | elif [[ $size -lt 0 ]]; then | ||
+ | (( size=size*-1 )) | ||
+ | negative=1 | ||
+ | fi | ||
+ | |||
+ | (( size=size*${_FORMAT_SIZE_UNITS_FACTOR[$unit]} )) | ||
+ | for unit in " | ||
+ | [[ $size -lt ${_FORMAT_SIZE_UNITS_FACTOR[$unit]} ]] && continue | ||
+ | if [[ $size -eq ${_FORMAT_SIZE_UNITS_FACTOR[$unit]} ]]; then | ||
+ | size=1 | ||
+ | else | ||
+ | size=$( echo " | ||
+ | fi | ||
+ | [[ $negative -eq 1 ]] && size=$( echo " | ||
+ | echo -n " | ||
+ | return | ||
+ | done | ||
} | } | ||
</ | </ |