Академический Документы
Профессиональный Документы
Культура Документы
Retourne le chemin complet d'accs la commande gcc Retourne le nom des utilisateurs qui ont ouvert une session sur cette machine
ou encore sous la forme : sh nom-fichier-script 7. Principes gnraux des scripts shell Un script shell est avant tout une succession de commandes, comme celles que nous crivons dans une fentre de type Terminal ; sauf que ces commandes nous les rassemblons dans un fichier pour les excuter dans lordre o elles sont crites dans le script. 8. Commentaires Presque tous les langages informatiques autorisent d'insrer des commentaires ; le shell n'chappe pas la rgle. Pour cela, il suffit de faire prcder chaque ligne de commentaire du caractre # . Exemple : #!/bin/sh # Tout ce que j'cris ici ne sera pas lu. echo "Ce que je tape ici sera lu." 9. Un script qui parle : la commande echo Maintenant que vous savez comment on peut excuter un script, il s'agit de le remplir... Commenons par ce qu'il y a de plus simple : afficher du texte, comme par exemple Ceci est un exemple de fichier script ! Ecrivez ce fichier script et appelez le script1 #!/bin/sh # Fichier "Exemple" echo " exemple de fichier script !" Excutez ensuite ce script, en tapant : $ ./script1 exemple de fichier script ! Autre exemple de fichier script (crivez-le et excutez-le). #!/bin/sh # Fichier "bonjour" echo "Bonjour... "
------------------------------------------- --------------------------------------33 Introduction lutilisation du systme Unix Yahya SLIMANI
echo "Comment allez-vous ?" 10. Annuler le retour chariot Si vous voulez annuler le retour chariot qui a lieu par dfaut la fin de toute commande echo, il faut utiliser l'option -n. Le programme sera alors : #!/bin/sh echo -n "Bonjour..." echo "Comment allez-vous ?" Vous aurez comme rsultat : Bonjour... Comment allez-vous ? 11. Lecture de valeurs de variables partir du clavier : commande read La commande Unix read permet de lire des valeurs partir du clavier. La commande read doit tre suivie dun nom de variable, non prcd du signe dollar. Cette variable contiendra la valeur introduite partir du clavier 12. Lire plusieurs variables La commande read permet galement de lire plusieurs variables. Il suffit pour cela d'indiquer la suite les noms des diffrentes variables. Exemple : #!/bin/sh # Fichier "administration" echo "crivez votre nom puis votre prnom :" read nom prenom echo "Nom : $nom" echo "Prnom : $prenom"
Vous obtiendrez comme rsultat : crivez votre nom puis votre prnom : Nom : Tounsi
------------------------------------------- --------------------------------------34 Introduction lutilisation du systme Unix Yahya SLIMANI
Prnom : Redha 13. Paramtres de position Les paramtres de position sont des variables spciales utilises lors d'un passage de paramtres un script.
Variable $0 $1-9 $# $* $@
Contenu Nom de la commande (du script) $1,$2,$3... Les neuf premiers paramtres passs au script Nombre total de paramtres passs au script Liste de tous les paramtres au format "$1 $2 $3 ..." Liste des paramtres sous forme d'lments distincts "$1" "$2" "$3" ...
14. Sortie de script La commande exit permet de mettre fin un script. Par dfaut la valeur retourne est 0 (pas d'erreur) 15. Tests de conditions La commande test permet d'effectuer des tests de conditions. Le rsultat est rcuprable par la variable $? (code retour). Si ce rsultat est 0 alors la condition est ralise. tests sur chane
test -z "variable" : zero, retour OK si la variable est vide (ex test -z "$a") test -n "variable" : non zero, retour OK si la variable n'est pas vide (texte quelconque) test "variable" = chane : OK si les deux chanes sont identiques test "variable" != chane : OK si les deux chanes sont diffrentes
tests sur valeurs numriques test valeur1 option valeur2 Option -eq -ne Rle Equal : Egal Not Equal : Diffrent
Less than : infrieur Greater than : suprieur Less ou equal : infrieur ou gal Greater or equal : suprieur ou gal
tests sur les fichiers La syntaxe est test option nom_fichier Option -f -d -c -b -p -r -w -x -s -e -L -u -g Rle Fichier normal Un rpertoire Fichier en mode caractre Fichier en mode bloc Tube nomm (named pipe) Autorisation en lecture Autorisation en criture Autorisation en excution Fichier non vide (au moins un caractre) Le fichier existe Le fichier est un lien symbolique Le fichier existe, SUID-Bit positionn Le fichier existe SGID-Bit positionn
tests combins par critres ET OU NON On peut effectuer plusieurs tests avec une seule instruction. Critre -a -o Action AND, ET logique OR, OU logique
! (...)
NOT, NON logique groupement des combinaisons. Les parenthses doivent tre vrouilles \(...\).
16. Instruction if ... then ... else La structure if then else fi 'est une structure de contrle conditionnelle. If <commandes_condition> then <commandes excutes si condition ralise> else <commandes excutes si dernire condition pas ralise> fi 17. Choix multiples case La commande case esac permet de vrifier le contenu d'une variable ou d'un rsultat de manire multiple. case Valeur in Modele1) Commandes ;; Modele2) Commandes ;; *) action_defaut ;; esac Le modle est soit un simple texte, soit compos de caractres spciaux. Chaque bloc de commandes li au modle doit se terminer par deux points-virgules. Ds que le modle est vrifi, le bloc de commandes correspondant est excut. L'toile en dernire position (chane variable) est l'action par dfaut si aucun critre n'est vrifi. Caractre * ? [...] [!...] | Rle Chane variable (mme vide) Un seul caractre Une plage de caractres Ngation de la plage de caractres OU logique
18. Les boucles Elles permettent la rptition d'un bloc de commandes soit un nombre limit de fois, soit conditionnellement. Toutes les commandes excuter dans une boucle se placent entre les commandes do et done.
Boucle for La boucle for ne se base pas sur une quelconque incrmentation de valeur mais sur une liste de valeurs, de fichiers ... for var in liste do commandes excuter done La liste reprsente un certain nombre d'lments qui seront successivement attribues var. Si on ne prcise aucune liste for, alors c'est la liste des paramtres soumise au script qui sera utilise. for params do echo "$params" done Boucle while La commande while permet une boucle conditionnelle tant que . Tant que la condition est ralise, le bloc de commande est excut. On sort si la condition n'est plus valable. while condition do commandes done ou while bloc d'instructions formant la condition do commandes done Boucle until La commande until permet une boucle conditionnelle jusqu' . Ds que la condition est ralise, on sort de la boucle. until condition do commandes done ou until bloc d'instructions formant la condition do commandes done