logo Debian Debian Debian-France Debian-Facile Debian-fr.org Forum-Debian.fr Debian ? Communautés logo inclusivité

Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

Vous n'êtes pas identifié(e).


L'icône rouge permet de télécharger chaque page du wiki visitée au format PDF et la grise au format ODT → ODT PDF Export

Ceci est une ancienne révision du document !


BASH:lecture expliquée des scripts du système

Les scripts de ~/.bashrc

# If not running interactively, don't do anything
case $- in
    *i*) ;;
      *) return;;
esac
Le shell positionne lui-même ce que contient le fichier ~/.bashrc comme une liste d'options à ajouter à ses options
Car le shell va être lancé comme shell interactif sans être un shell de login car pour tout argument le tiret de $- sera remplacé par l'option i.

Explication

Rappel sur la structure "case/esac"

  • Syntaxe :
case mot in
         [ modèle [ | modèle ] ... ) suite_de_commandes ;; ] ...
         esac

→ Le shell évalue la valeur de mot puis compare séquentiellement cette valeur à chaque modèle.
→ Dès qu'un modèle correspond à la valeur de mot, la suite_de_commandes associée est exécutée, terminant l'exécution de la commande interne composée case.
suite_de_commandes doit se terminer par deux caractères point-virgule collés, de manière à ce qu’il n’y ait pas d’ambiguïté avec l’enchaînement séquentiel de commandes cmd1 ; cmd2
→ Les mots case et esac sont des mots réservés 1).

Le mot "$-" et la condition "*i*"

  • $- :

Est remplacé par la liste des options du shell indiquées durant l'invocation, configurées avec la commande interne set ou positionnées par le shell lui-même (comme avec l'option -i ). le tiret de $- : en fait un shell de login

Un shell est dit de login si le premier caractère de son argument numéro zéro est un -, ou s'il est invoqué avec l'option -login.
  • option -i :

Si l'option -i est présente, l'interpréteur est interactif.

Un shell est interactif si son entrée standard et sa sortie standard sont toutes deux connectées à un terminal (déterminé par la fonction isatty(3)),
ou s'il est invoqué avec l'option -i.

Le paramètre PS1 est positionné, et le paramètre $- contient la lettre i si bash est interactif, ce qui permet à un script ou à un fichier de démarrage de vérifier l'état du shell.~/.bashrc2)

Quand un shell interactif démarre sans être un shell de login, bash lit et exécute les commandes se trouvant dans ~/.bashrc s'il existe.
Quand un shell interactif démarre sans être un shell de login, bash lit et exécute les commandes se trouvant dans ~/.bashrc s'il existe

  • * : Tous les mots sauf le zéro-ième.

C'est un synonyme pour `1-$' (c'est-à-dire du premier au dernière argument inclu).
Même s'il n'y a qu'un mot, * ne déclenche pas d'erreur, simplement la chaîne vide est renvoyée.

  • x* : Abréviation de x-$ (c'est-à-dire de l'argument x jusqu'au dernier inclus).
  • return [n] : La fonction shell en cours d'exécution se termine en renvoyant la valeur n. Si n est omis, la valeur renvoyée est celle de la dernière commande exécutée dans le corps de la fonction.
    Si cette commande est exécutée en dehors d'une fonction, mais durant l'exécution d'un script avec la commande . (source) ce script s'arrête, et la valeur renvoyée est n ou celle de la dernière commande exécutée.
    Si elle est utilisée en dehors d'une fonction ou d'un script exécuté par ., le code retour est Faux.

Installation

Utilisation

1)
! case do done elif else esac fi for function if in select then until while { } time [[ ]]
2)
PS1 : La valeur de ce paramètre est développée puis utilisée comme symbole d'accueil principal (voir le paragraphe SYMBOLE D'ACCUEIL ci-dessous). La valeur par défaut est \s-\v\$ .
utilisateurs/hypathie/tutos/script_system-lecture_expliquee.1414138489.txt.gz · Dernière modification: 24/10/2014 10:14 par Hypathie

Pied de page des forums

Propulsé par FluxBB