Varibles bash
De Linuxmemo.
Sommaire |
[modifier] 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"
[modifier] 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}"
[modifier] Variables spéciales
$$ PID du shell courant
$! PID du dernier travail lancé en arrière plan
$? code retour de la dernière commande
[modifier] 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
[modifier] 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
[modifier] 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