Outils pour utilisateurs

Outils du site


linux:bash-options

BASH : Shell Unix et options

Bash, acronyme de Bourne-again shell, est le shell du projet GNU. Son nom est un jeu de mots sur le nom du shell historique d'Unix, le Bourne shell. Littéralement, Bourne again signifie « Bourne encore », mais se prononce également presque comme born again, signifiant « né de nouveau » ou encore « réincarné ». Également, to bash signifie « frapper violemment » en anglais.

BASH shell

Basé sur le Bourne shell, Bash lui apporte de nombreuses améliorations, provenant notamment du Korn shell et du C shell. Bash est un logiciel libre publié sous GNU GPL. Il est l'interprète par défaut sur de nombreux Unix libres, notamment sur les systèmes GNU/Linux. C'est aussi le shell par défaut de Mac OS X et il a été porté sous Windows par le projet Cygwin.

Afficher les options du SHELL

  • Utilisez l'option -o de set pour afficher toutes les options Shell :

willy:~> set -o
allexport               off
braceexpand             on
emacs                   on
errexit                 off
hashall                 on
histexpand              on
history                 on
ignoreeof               off
interactive-comments    on
keyword                 off
monitor                 on
noclobber               off
noexec                  off
noglob                  off
nolog                   off
notify                  off
nounset                 off
onecmd                  off
physical                off
posix                   off
privileged              off
verbose                 off
vi                      off
xtrace                  off

Modifier les options


Les options Shell peuvent être modifiées soit par rapport à celles par défaut à l'appel du Shell, soit aucours des traitements Shell. Elles peuvent être aussi intégrées aux fichiers de configuration des ressources Shell.
La commande suivante exécute un script en mode compatible POSIX :

willy:~/scripts> bash --posix script.sh

Pour changer l'environnement temporairement, ou à l'usage d'un script, nous utiliserions plutôt set. Employez - (moins) pour activer l'option, + pour la désactiver :
willy:~/test> set -o noclobber
willy:~/test> touch test
willy:~/test> date > test
bash: test: cannot overwrite existing file
willy:~/test> set +o noclobber
willy:~/test> date > test
L'exemple ci-dessus montre l'usage de l'option noclobber , qui évite que les fichiers existants soient écrasés par les opérations de redirection. La même chose joue pour les options à 1 caractère, par exemple -u, qui, activée, traite les variables non déclarées comme des erreurs, et quitte un Shell non-interactif quand survient une telle erreur :
willy:~> echo $VAR
willy:~> set -u
willy:~> echo $VAR
bash: VAR: unbound variable

Cette option est aussi utile pour détecter des valeurs incorrectes affectées à des variables : la même erreur se produira aussi, par exemple, quand une chaîne de caractère est affectée à une variable qui a été déclarée explicitement comme devant contenir une valeur numérique. Voici un dernier exemple qui illustre l'option noglob , laquelle empêche les caractères spéciaux d'être interprétés :

willy:~/testdir> set -o noglob
willy:~/testdir> touch *
willy:~/testdir> ls -l *
-rw-rw-r--    1 willy    willy          0 Feb 27 13:37 *

linux/bash-options.txt · Dernière modification: 15/04/2016 à 21:15 (modification externe)

Outils de la page