Bash Linux

  • View
    223

  • Download
    1

Embed Size (px)

DESCRIPTION

Introduction à la programmation Bash - par Eric SANCHIS

Text of Bash Linux

  • Introduction la programmation en Bash

    Version 0.1

    Eric Sanchis

    IUT de Rodez, 33 avenue du 8 mai 1945, 12000 Rodez

    Tl : 05.65.77.10.80 Fax : 05.65.77.10.81 Internet : www.iut-rodez.fr

  • Prface Interprteur de commandes par dfaut des systmes GNU/Linux, bash est devenu pour les administrateurs systme, un outil incontournable. Ce document prsente les principales constructions syntaxiques de bash utilises dans lcriture des programmes shell (scripts shell). Lobjectif premier a t de laisser de ct les redondances syntaxiques de ce langage de programmation, la subtilit des mcanismes de linterprteur, afin dinsister sur quelques concepts synthtiques tels que la substitution, la redirection ou le filtrage. Cet crit tant destin principalement aux tudiants de premier et deuxime cycle en informatique, jai choisi de le rdiger en adoptant un style 2Ex (1 Explication, 1 Exemple) qui devrait permettre au lecteur de mieux sapproprier chaque notion prsente. Ce dernier pourra ensuite aborder des publications plus extensives ou plus spcialises. Cette publication tant loin dtre parfaite1, jencourage le lecteur me faire parvenir ses remarques ou suggestions, ainsi qu me signaler toute inexactitude (sanchis@iut-rodez.fr). Pour en savoir plus : [1] Mendel Cooper, Advanced Bash Scripting Guide (http://tldp.org/LDP/abs/html). Une traduction en franais est disponible (http://abs.traduc.org). [2] Arnold Robbins, Nelson H. F. Beebe, Introduction aux scripts shell, Ed. OReilly, Paris,

    2005. [3] Cameron Newham, Bill Rosenblatt, Le shell bash, 3me dition, Ed. OReilly, Paris, 2006. Plate-forme logicielle utilise : Interprteur bash 3.1, systme PC/Debian Licence : GNU Free Documentation License

    1 Les exemples figurant dans ce document ont pour but dillustrer les notions traites. Il nest donn aucune garantie quant leur fonctionnement ou leurs effets.

  • Table des matires

    1. Introduction bash ---------------------------------------------------------------------------------------------------------- 5 1.1. Les shells --------------------------------------------------------------------------------------------------------------- 5 1.2. Syntaxe dune commande -------------------------------------------------------------------------------------------- 8 1.3. Commandes internes et externes ------------------------------------------------------------------------------------ 9 1.4. Modes dexcution dune commande ------------------------------------------------------------------------------11 1.5. Commentaires --------------------------------------------------------------------------------------------------------12 1.6. Fichiers shell ---------------------------------------------------------------------------------------------------------13

    2. Substitution de paramtres ------------------------------------------------------------------------------------------------15 2.1. Variables --------------------------------------------------------------------------------------------------------------15 2.2. Paramtres de position et paramtres spciaux------------------------------------------------------------------18 2.3. Suppression des ambiguts-----------------------------------------------------------------------------------------24 2.4. Paramtres non dfinis ----------------------------------------------------------------------------------------------24 2.5. Suppression de variables--------------------------------------------------------------------------------------------26

    3. Substitution de commandes------------------------------------------------------------------------------------------------27 3.1. Prsentation ----------------------------------------------------------------------------------------------------------27 3.2. Substitutions de commandes et paramtres rgionaux ----------------------------------------------------------29

    4. Caractres et expressions gnriques ------------------------------------------------------------------------------------31 4.1. Caractres gnriques-----------------------------------------------------------------------------------------------32 4.2. Expressions gnriques----------------------------------------------------------------------------------------------35

    5. Redirections lmentaires--------------------------------------------------------------------------------------------------37 5.1. Descripteurs de fichiers ---------------------------------------------------------------------------------------------37 5.2. Redirections lmentaires-------------------------------------------------------------------------------------------37 5.3. Tubes-------------------------------------------------------------------------------------------------------------------42

    6. Groupement de commandes -----------------------------------------------------------------------------------------------44

    7. Code de retour ---------------------------------------------------------------------------------------------------------------47 7.1. Paramtre spcial ?-------------------------------------------------------------------------------------------------47 7.2. Code de retour d'un programme shell -----------------------------------------------------------------------------50 7.3. Commande interne exit ----------------------------------------------------------------------------------------------50 7.4. Code de retour d'une suite de commandes------------------------------------------------------------------------51 7.5. Rsultats et code de retour------------------------------------------------------------------------------------------52 7.6. Oprateurs && et || sur les codes de retour-------------------------------------------------------------------52

    8. Structures de contrle case et while--------------------------------------------------------------------------------------55 8.1. Choix multiple case --------------------------------------------------------------------------------------------------55 8.2. Itration while --------------------------------------------------------------------------------------------------------56

    9. Chanes de caractres -------------------------------------------------------------------------------------------------------61

    3

  • 9.1. Protection de caractres --------------------------------------------------------------------------------------------61 9.2. Longueur d'une chane de caractres -----------------------------------------------------------------------------62 9.3. Modificateurs de chanes--------------------------------------------------------------------------------------------62 9.4. Extraction de sous-chanes -----------------------------------------------------------------------------------------64 9.5. Remplacement de sous-chanes-------------------------------------------------------------------------------------65

    10. Structures de contrle for et if-----------------------------------------------------------------------------------------67 10.1. Itration for ----------------------------------------------------------------------------------------------------------67 10.2. Choix if ---------------------------------------------------------------------------------------------------------------69

    11. Entiers et expressions arithmtiques ---------------------------------------------------------------------------------75 11.1. Variables de type entier ---------------------------------------------------------------------------------------------75 11.2. Commande interne ((------------------------------------------------------------------------------------------------75 11.3. Valeur d'une expression arithmtique -----------------------------------------------------------------------------77 11.4. Oprateurs ------------------------------------------------------------------------------------------------------------78 11.5. Structure for pour les expressions arithmtiques ----------------------------------------------------------------83 11.6. Exemple : les tours de Hanoi ---------------------------------------------------------------------------------------84

    12. Tableaux -------------------------------------------------------------------------------------------------------------------86 12.1. Dfinition et initialisation dun tableau ---------------------------------------------------------------------------86 12.2. Valeur d'un lment d'un tableau ----------------------------------------------------------------------------------87 12.3. Caractristiques d'un tableau --------------------------------------------------------------------------------------88 12.4. Suppression d'un tableau--------------------------------------------------------------------------------------------89

    13. Alias-------------------------------------------------------------------------------------------------------------------------90 13.1. Cration dun alias --------------------------------------------------------------------------------------------------90 13.2. Suppression dun alias ----------------------------------------------------------------------------------------------92

    14. Fonctions shell ------------------------------------------------------------------------------------------------------------93 14.1. Dfinition dune fonction--------------------------------------------------------------------------------------------93 14.2. Suppression dune fonction -----------------------------------------------------------------------------------------96 14.3. Trace des appels aux fonctions -------------------------------------------------------------------------------------96 14.4. Arguments dune fonction------------------------------------------------------------------------------