Varibles bash
De Linuxmemo.
Sommaire |
Manipulation de variables simples
var=val ou var="a b" affectation de la variable "var"
$var ou ${var} contenu de la variable "var"
${#var} longueur de la variable "var"
export var ou declare -x var exportation de la variable "var" vers les shells fils
set affichage de l'ensemble des variables définies dans le shell
unset var suppression de la variable "var"
Paramètres positionnels et arguments
$0 nom du script
$1 $2 ... ${10} paramètres positionnels (1, 2 et 10)
$# nombre de paramètres positionnels
$* ou $@ ensemble des paramètres positionnels, équivalant à $1 $2 ... ${n}
"$*" ensemble des paramètres positionnels, équivalant à "$1 $2 ... ${n}"
"$@" ensemble des paramètres positionnels, équivalant à "$1" "$2" ... "${n}"
Variables spéciales
$$ PID du shell courant
$! PID du dernier travail lancé en arrière plan
$? code retour de la dernière commande
Variables d'environnement
$HOME chemin du répertoire personnel de l'utilisateur
$OLDPWD chemin du répertoire précédent
$PATH liste des chemins de recherche des commandes exécutables
$PPID PID du processus père du shell
$PS1 invite principale du shell
$PS2 invite secondaire du shell
$PS3 invite de la structure shell "select"
$PS4 invite de l'option shell de débogage "xtrace"
$PWD chemin du répertoire courant
$RANDOM nombre entier aléatoire compris entre 0 et 32767
$REPLY variable par défaut de la commande "read" et de la structure shell "select"
$SECONDS nombre de secondes écoulées depuis le lancement du shell
Typage des variables
- declare
Déclaration de variable/fonction et typage de la variable/fonction.
-a to make NAMEs indexed arrays (if supported) -A to make NAMEs associative arrays (if supported) -i to make NAMEs have the `integer' attribute -l to convert NAMEs to lower case on assignment -r to make NAMEs readonly -t to make NAMEs have the `trace' attribute -u to convert NAMEs to upper case on assignment -x to make NAMEs export
Expension de variable
https://www.gnu.org/software/bash/manual/html_node/Shell-Parameter-Expansion.html
${parameter:-defaultValue} Get default shell variables value ${parameter:=defaultValue} Set default shell variables value ${parameter:?"Error Message"} Display an error message if parameter is not set ${#var} Find the length of the string ${var%pattern} Remove from shortest rear (end) pattern ${var%%pattern} Remove from longest rear (end) pattern ${var:num1:num2} Substring ${var#pattern} Remove from shortest front pattern ${var##pattern} Remove from longest front pattern ${var/pattern/string} Find and replace (only replace first occurrence) ${var//pattern/string} Find and replace all occurrences ${!prefix*} Expands to the names of variables whose names begin with prefix. ${var,} ${var,pattern} Convert first character to lowercase. ${var,,} ${var,,pattern} Convert all characters to lowercase. ${var^} ${var^pattern} Convert first character to uppercase. ${var^^} ${var^^pattern} Convert all character to uppercase..
https://www.cyberciti.biz/tips/bash-shell-parameter-substitution-2.html