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

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
utilisateurs:hypathie:tutos:script_system-lecture_expliquee [24/10/2014 10:14]
Hypathie
utilisateurs:hypathie:tutos:script_system-lecture_expliquee [24/10/2014 11:29] (Version actuelle)
Hypathie [Les scripts de ~/.bashrc]
Ligne 10: Ligne 10:
 # If not running interactively,​ don't do anything # If not running interactively,​ don't do anything
 case $- in case $- in
-    *i*) ;; +    *i*) ;; # shell interactif si l'​option est présente 
-      *) return;;+      *) return;; ​# shell non interactif dans tous autres cas
 esac esac
 </​code>​ </​code>​
 +> Script qui teste la présence de l'​option -i
  
-> 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==== ====Explication====
 ===Rappel sur la structure "​case/​esac"​=== ===Rappel sur la structure "​case/​esac"​===
Ligne 32: Ligne 31:
  
 ===Le mot "​$-"​ et la condition "​*i*"​ === ===Le mot "​$-"​ et la condition "​*i*"​ ===
-  * **$-** : +  * **$-** : options ​fournies au shell par set 
-Est remplacé par la liste des options ​du shell indiquées durant ​l'invocationconfiguré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+  * **option -i** : Si l'option -i est présentel'​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.\\ Un shell interactif lit les commandes à partir de l'entrée utilisateur sur un terminal tty. Entre autres choses, un tel script lit les fichiers ​de démarrage lors de l'​activation,​ affiche une invite et active un contrôle de job par défaut. L'​utilisateur peut interagir avec le shell.\\ Ainsi il ne s'agit pas d'un script qui n'est jamais interactif.  
 <​note>​ <​note>​
 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''​. 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** : +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 [[http://​jp.barralis.com/​linux-man/​man3/​isatty.3.php|isatty]](3)),​\\  ​
-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 [[http://​jp.barralis.com/​linux-man/​man3/​isatty.3.php|isatty]](3)),​\\  ​+
 ou s'il est **invoqué avec l'​option -i**.\\ ou s'il est **invoqué avec l'​option -i**.\\
  
Ligne 49: Ligne 46:
 </​note>​ </​note>​
  
-  * **''​ * ''​** : Tous les mots sauf le zéro-ième. +  * **''​ * ''​** : 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. 
- 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).+  ​* **''​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.__ 
 + 
 +===Le fichier ~/bashrc n'est pas un script=== 
 +<code user>ls -la /​home/​hypathie/​.bashrc</​code>​ 
 +<​code>​-rw-r--r-- 1 hypathie hypathie 3557 oct.  23 15:59 /​home/​hypathie/​.bashrc</​code>​ 
 +> Il n'y a pas les droits d'​exécution.
  
-  * **''​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 ===== ===== Installation =====
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