Le Shell: les tubes, les filtres, écriture de scripts
Le Shell: les tubes, les filtres, écriture de scripts
Le Shell: les tubes, les filtres, écriture de scripts
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
3 <strong>Le</strong>s <strong>scripts</strong> shell3.1 IntroductionDans <strong>les</strong> précé<strong>de</strong>nts travaux pratiques, <strong>les</strong> différentes comman<strong>de</strong>s ont été exécutées sur laligne <strong>de</strong> comman<strong>de</strong>. Il est possible <strong>de</strong> créer <strong>de</strong>s fichiers contenant un ensemble d’instructions et<strong>de</strong> réaliser ainsi <strong>de</strong> véritab<strong>les</strong> programmes : <strong>les</strong> <strong>scripts</strong> shell.3.2 Co<strong>de</strong> retour d’un shell<strong>Le</strong> co<strong>de</strong> retour d’un shell est généré par la comman<strong>de</strong> exit suivi <strong>de</strong> la valeur <strong>de</strong> retour. Cettevaleur peut ensuite être visualisée dans le shell par la variable $ ?.3.3 Passage d’argumentsUn script shell peut prendre <strong>de</strong>s arguments sur sa ligne <strong>de</strong> comman<strong>de</strong>. Ces paramètres sontaccessib<strong>les</strong> par <strong>de</strong>s variab<strong>les</strong> internes : la variable $0 représente le nom <strong>de</strong> votre script, $1 lepremier argument, $2 le second... La comman<strong>de</strong> shift permet <strong>de</strong> décaler la numérotation <strong>de</strong> cesvariab<strong>les</strong>. <strong>Le</strong> nombre <strong>de</strong>s paramètres peut être obtenu grâce à $# alors que $* permet d’obtenirl’ensemble <strong>de</strong>s paramètres.3.4 <strong>Le</strong>s fonctionsAfin <strong>de</strong> pouvoir réutiliser le co<strong>de</strong> dans vos script shell, il est possible <strong>de</strong> définir <strong>de</strong>s fonctions.Cel<strong>les</strong>-ci <strong>de</strong> définissent grâce au mot réservé function :oufunction nom_fonction {comman<strong>de</strong>;}nom_fonction() {comman<strong>de</strong>;}Une fonction traite <strong>de</strong>s arguments en respectant <strong>les</strong> mêmes principes que le passage <strong>de</strong>paramètres d’un script shell. <strong>Le</strong> co<strong>de</strong> retour d’une fonction est retourné par le mot clef returnsuivi <strong>de</strong> la valeur retournée.5