Les options sont des paramètrages modifiant le comportement du shell et/ou du script.
La commande set active les options dans un script. Là où vous voulez que les options soient effectives dans le script, utilisez set -o nom-option ou, plus court, set -abreviation-option. Ces deux formes sont équivalentes.
#!/bin/bash
set -o verbose
# Affiche toutes les commandes avant exécution.
|
#!/bin/bash
set -v
# Même effet que ci-dessus.
|
![]() | Pour désactiver une option dans un script, utilisez set +o nom-option ou set +abreviation-option. |
#!/bin/bash
set -o verbose
# Mode echo des commandes activé.
commande
...
commande
set +o verbose
# Mode echo des commandes désactivé.
commande
# Pas d'affichage.
set -v
# Mode echo des commandes activé.
commande
...
commande
set +v
# Mode echo des commandes désactivé.
commande
exit 0
|
Une autre méthode d'activation des options dans un script est de les spécifier tout de suite après l'entête #! du script.
#!/bin/bash -x
#
# Le corps du script suit.
|
Il est aussi possible d'activer les options du script à partir de la ligne de commane. Certaines options qui ne fonctionneront pas avec set sont disponibles de cette façon. Parmi celles-ci se trouve -i, forçant un script à se lancer de manière interactive.
bash -v nom-script
bash -o verbose nom-script
Ce qui suit est une liste de quelques options utiles. Elles sont spécifiées soit dans leur forme abrégée soit par leur nom complet.
Tableau 31-1. Options de bash
| Abréviation | Nom | Effet |
|---|---|---|
| -C | noclobber | Empêche l'écrasement de fichiers par une redirection (peut être outrepassé par >|) |
| -D | (aucune) | Affiche les chaînes entre guillemets doubles préfixées par un $, mais n'exécute par les commandes du script. |
| -a | allexport | Exporte toutes les variables définies |
| -b | notify | Notifie lorsque un travail en tâche de fond se termine (pas d'une grande utilité dans un script) |
| -c ... | (aucune) | Lit les commandes à partir de ... |
| -f | noglob | Expansion des noms de fichier désactivée |
| -i | interactive | Script lancé dans un mode interactif |
| -p | privileged | Script lancé avec << suid >> (attention!) |
| -r | restricted | Script lancé en mode restreint (voir Chapitre 21). |
| -u | nounset | Essayer d'utiliser une variable non définie affiche un message d'erreur et force l'arrêt du script |
| -v | verbose | Affiche chaque commande sur stdout avant des les exécuter |
| -x | xtrace | Similaire à -v, mais étend les commandes |
| -e | errexit | Arrête le script à la première erreur (lorsque la commande s'arrête avec un code différent de zéro) |
| -n | noexec | Lit les commandes dans un script, mais ne les exécute pas (vérification de la syntaxe) |
| -s | stdin | Lit les commandes à partir de stdin |
| -t | (aucune) | Quitte après la première commande |
| - | (aucune) | Fin des options. Tous les autres arguments sont des paramètres de position. |
| -- | (aucune) | Désinitialise les paramètres de position. Si des arguments sont donnés (-- arg1 arg2), les paramètres de position sont initialisés avec ces arguments. |
| Précédent | Sommaire | Suivant |
| Déboguage | Niveau supérieur | Trucs et astuces |