$0 : nom du script. Plus précisément, il s'agit du paramètre 0 de la ligne de commande, équivalent de argv[0]
$1, $2, ..., $9 : respectivement premier, deuxième, ..., neuvième paramètre de la ligne de commande
$* : tous les paramètres vus comme un seul mot
$@ : tous les paramètres vus comme des mots séparés : "$@" équivaut à "$1" "$2" ...
$# : nombre de paramètres sur la ligne de commande
$- : options du shell
$? : code de retour de la dernière commande. Vaut généralement 0 si cette commande s'est bien déroulée, et un autre nombre correspondant à un type d'erreur, décrit par la commandeerrno[2].
$$ : PID du shell
$! : PID du dernier processus lancé en arrière-plan
$_ : dernier argument de la commande précédente
https://fr.wikibooks.org/wiki/Programmation_Bash/Notions_essentielles_du_shell_bash
| Test | Signification | Exemple | Résultat |
| ---- | ------------------------------------------ | ---------------------- | ---------------------------------------------- |
| `-e` | Le fichier **existe** (fichier ou dossier) | `[ -e /tmp/test.txt ]` | vrai si le fichier ou dossier existe |
| `-f` | C’est un **fichier régulier** | `[ -f /tmp/test.txt ]` | vrai si c’est un fichier normal (pas dossier, pas lien) |
| `-d` | C’est un **dossier (directory)** | `[ -d /tmp/backup ]` | vrai si c’est un dossier |
| `-L` | C’est un **lien symbolique (symlink)** | `[ -L /etc/rc.local ]` | vrai si c’est un lien |
| `-r` | Le fichier est **lisible** | `[ -r fichier.txt ]` | vrai si le script peut le lire |
| `-w` | Le fichier est **modifiable (writable)** | `[ -w fichier.txt ]` | vrai si le script peut l’écrire |
| `-x` | Le fichier est **exécutable** | `[ -x script.sh ]` | vrai si le script peut l’exécuter |
| `-s` | Le fichier a une **taille > 0 octet** | `[ -s fichier.log ]` | vrai si le fichier n’est pas vide |
| `!` | Négation (non) | `[ ! -e fichier.txt ]` | vrai si le fichier **n’existe pas** |