{{tag>dev bash exemple code snippet guide howto}} :TODO_DOCUPDATE: ====== Bash : vérifier le mode d'exécution interactif ====== Lorsque Bash est lancé en mode interactif l'option -i est précisée et la variable **PS1** est définie. Les options actives sont listées dans la variable **$-**. Le script **~/.basrc** utilise la valeur de cette variable pour déterminer si l'exécution courante est interactive ou non et adapter son comportement. Depuis un shell interactif lorsque l'utilisateur invoque une commande ou un autre script, un nouvel environnement est créé par copie de l'environnement courant (fork) puis par lectures successives des fichiers ''/etc/bash.bashrc'' et ''~/.bashrc''. :TODO: Tester le fonctionnement du fork et la séquence d'appel des scripts * Dans l'environnement interactif courant créer une variable et l'exporter * Modifier le script ~/.basrc ajouter une variable * Invoquer une nouvelle commande et vérifier la présence des variables ===== La commande test ===== La commande **test** intègre une option intéressante **-t** permettant de vérifier si un descripteur de fichier quelconque ''FD'' est lié à un terminal. # Retourne vrai si le descripteur 0 (stdin) est lié au terminal donc au clavier [ -t 0 ] # Retourne vrai si le descripteur 1 (stdout) est lié au terminal donc à l'écran [ -t 1 ] ===== Références ===== * https://serverfault.com/questions/146745/how-can-i-check-in-bash-if-a-shell-is-running-in-interactive-mode