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 |