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
Prochaine révision Les deux révisions suivantes
doc:programmation:shells:bash-les-differents-caracteres-speciaux [03/07/2014 23:12]
captnfab [Shell BASH]
doc:programmation:shells:bash-les-differents-caracteres-speciaux [08/07/2014 08:53]
Hypathie [Quotes, apostrophe, guillemets et apostrophe inversée]
Ligne 33: Ligne 33:
 ===== Shell BASH ===== ===== Shell BASH =====
  
-Le shell (« coquille » en anglais) est également appelé interpréteur de commandes.+Le //shell// (« coquille » en anglais) est également appelé ​//interpréteur de commandes//.
  
-C'est une couche logicielle qui fournit une l'​interface utilisateur à système d'​exploitation. Il correspond à la couche la plus externe de ce dernier. ​ Il se présente sous la forme d'une interface en ligne de commande accessible depuis la console ou un terminal. L'​utilisateur lance des commandes sous forme d'une entrée texte exécutée ensuite par le shell.+>C'est une couche logicielle qui fournit une l'​interface utilisateur à système 
 +>d'​exploitation. ​ 
 +>Il correspond à la couche la plus externe de ce dernier.  ​ 
 +>Il se présente sous la forme d'une interface en ligne de commande accessible ​ 
 +>depuis la console ou un terminal. ​ 
 +>L'​utilisateur lance des commandes sous forme d'une entrée texte exécutée ensuite par le shell.
  
 <note tip>Le shell bash est l'un des shell utilisé sous gnu/linux. <note tip>Le shell bash est l'un des shell utilisé sous gnu/linux.
Ligne 41: Ligne 46:
   * http://​fr.wikipedia.org/​wiki/​Shell_Unix#​Historique_des_shell_Unix   * http://​fr.wikipedia.org/​wiki/​Shell_Unix#​Historique_des_shell_Unix
   * [[doc:​programmation:​shell:​shell#​introduction|le shell pour tous:​introduction]]   * [[doc:​programmation:​shell:​shell#​introduction|le shell pour tous:​introduction]]
 +
 +Quand on installe Debian Stable, le shell utilisateur par défaut est le shell Bash((alors que l'​interpréteur de commande par défaut pour les applications est dash)).
 </​note>​ </​note>​
  
-Quand on installe Debian Stable, le shell utilisateur par défaut est le shell **Bash**((alors que l'​interpréteur de commande par défaut pour les applications est **dash**)). 
  
 ==== Connaître votre shell utilisateur ==== ==== Connaître votre shell utilisateur ====
Ligne 50: Ligne 56:
 La commande ''​env''​ permet de lister les variables d'​environnement du contexte qui l'​exécute. La commande ''​env''​ permet de lister les variables d'​environnement du contexte qui l'​exécute.
 <code user>​env</​code>​ <code user>​env</​code>​
-Le retour est copieux ! Mais on trouve dans la liste : 
 <​code>​SHELL=/​bin/​bash</​code>​ <​code>​SHELL=/​bin/​bash</​code>​
-Ce qui signifie ​que le nom de l'​interpréteur de commande est bash.+>Le retour est copieux !  
 +>Mais on trouve dans la liste la ligne ci-dessus  
 +>​signifiant que le programme associé à la variable SHELL est le bash ; 
 +>​autrement dit, que le nom de l'​interpréteur de commande est bash. 
  
 === En affichant la variable SHELL === === En affichant la variable SHELL ===
Ligne 58: Ligne 67:
 Plus directement,​ on peut faire : Plus directement,​ on peut faire :
 <code user>​echo $SHELL</​code>​ <code user>​echo $SHELL</​code>​
-Qui retournera 
 <​code>/​bin/​bash</​code>​ <​code>/​bin/​bash</​code>​
 +;-)
  
 === Version utilisée === === Version utilisée ===
Ligne 72: Ligne 81:
 Avant d'​aller plus loin : Avant d'​aller plus loin :
     *[[doc:​programmation:​shell:​shell|Le shell pour tous]]     *[[doc:​programmation:​shell:​shell|Le shell pour tous]]
-    * ET qui dit shell, dit commandes : [[:​doc:​systeme:​commandes:​le_debianiste_qui_papillonne|Utiliser GNU/Linux en ligne de commande, tout commence là !.]]  :-)+    * Et qui dit shell, dit commandes : [[:​doc:​systeme:​commandes:​le_debianiste_qui_papillonne|Utiliser GNU/Linux en ligne de commande, tout commence là !.]]  :-)
  
  
-==== Commandes internes, commandes ​externes ====+==== Commandes internes ​et externes ====
  
 Distinguons maintenant les commandes internes et les commandes externes au shell bash, commandes simples et les commandes composées. Distinguons maintenant les commandes internes et les commandes externes au shell bash, commandes simples et les commandes composées.
Ligne 110: Ligne 119:
 <code user>​which nom_commande</​code>​ <code user>​which nom_commande</​code>​
  
 +  * Le shell crée un //​[[atelier:​chantier:​bash-les-differents-caracteres-speciaux#​notion-de-processus|processus]]//​ pour exécuter une commande externe. Parmi les commandes externes que l'on trouve dans un système, il y a les exécutables ELF (ex. ls, mkdir, vi, sleep) et les fichiers de scripts (dont par exemple les scripts shell).\\ ​
 </​note>​ </​note>​
  
-==== Notion de processus ​==== +===Localisation des commandes===
- +
-Le shell crée un processus pour exécuter une commande externe. Parmi les commandes externes que l'on trouve dans un système, il y a les exécutables ELF (ex. ls, mkdir, vi, sleep) et les fichiers de scripts (dont par exemple les scripts shell).+
  
 La localisation du code d'une commande externe doit être connu du shell pour qu'il puisse exécuter cette commande. A cette fin, bash utilise la valeur de sa variable prédéfinie PATH.  La localisation du code d'une commande externe doit être connu du shell pour qu'il puisse exécuter cette commande. A cette fin, bash utilise la valeur de sa variable prédéfinie PATH. 
Ligne 120: Ligne 128:
 <note tip> <note tip>
 **Pour connaître le statut d'une commande, avec bash, on peut utiliser la commande interne type**:​\\ ​ **Pour connaître le statut d'une commande, avec bash, on peut utiliser la commande interne type**:​\\ ​
-<code user> +<code user>​type cd</​code>​ 
-type cd +<​code>​cd est une primitive du shell
-cd est une primitive du shell+
 </​code>​ </​code>​
  
-<code user> +<code user>​type cp</​code>​ 
-type cp +<​code>​cp est /​bin/​cp</​code>​
-cp est /bin/cp +
-</​code>​+
  
-<code user>​type sleep +<code user>​type sleep</​code>​ 
-sleep est /bin/sleep +<​code>​sleep est /​bin/​sleep</​code>​
-</​code>​+
 //''/​bin/​commande''​ signifie donc que c'est une commande externe.// //''/​bin/​commande''​ signifie donc que c'est une commande externe.//
  
-<code user> +<code user>​type ls</​code>​ 
-type ls +<​code>​ls est un alias vers « ls --color=auto »</​code>​
-ls est un alias vers « ls --color=auto » +
-</​code>​+
  
-<code user>​whereis ls +<code user>​whereis ls</​code>​ 
-ls: /bin/ls /​usr/​share/​man/​man1/​ls.1.gz +<​code>​ls: /bin/ls /​usr/​share/​man/​man1/​ls.1.gz</​code>​
-</​code>​+
  
-<code user>​which ls +<code user>​which ls</​code>​ 
-/bin/ls +<​code>​/​bin/​ls</​code>​
-</​code>​+
 //''​ls''​ est donc l'​alias de la commande externe ''/​bin/​ls''//​ //''​ls''​ est donc l'​alias de la commande externe ''/​bin/​ls''//​
 </​note>​ </​note>​
Ligne 155: Ligne 155:
 Les commandes simples peuvent être des commandes internes ou des commandes externes. Les commandes simples peuvent être des commandes internes ou des commandes externes.
  
-  ​commandes internes par exemple : type, cd , echo , pwd, export ... +  ​commandes internes par exemple : type, cd , echo , pwd, export ... 
-  ​commandes externes par exemple : ls, mkdir, rm, rmdir, vi, cal ...+  ​commandes externes par exemple : ls, mkdir, rm, rmdir, vi, cal ...
  
   * Voici une liste non exhaustive des commandes simples, on y retrouve des commandes internes et externes :   * Voici une liste non exhaustive des commandes simples, on y retrouve des commandes internes et externes :
Ligne 164: Ligne 164:
 rm, rmdir, sed, setserial, sh, stty, su, sync, true, umount, uname. rm, rmdir, sed, setserial, sh, stty, su, sync, true, umount, uname.
 </​code>​ </​code>​
-(Consultez la documentation pour plus d'​information sur chacune d'​entre elles.)+>Consultez la documentation pour plus d'​information sur chacune d'​entre elles.
  
 === Les commandes composées par des mots clés === === Les commandes composées par des mots clés ===
Ligne 181: Ligne 181:
 </​note>​ </​note>​
  
 +==== Notion de processus ====
 +===Généralité===
 +De façon générale, la notion de processus recouvre tout le fonctionnement de\\ 
 +notre système GNU/linux et revoie à l'​utilisation du processeur de notre machine.\\ ​
 +L'​étude des processus mériterait à elle seule un livre entier, et dépasse largement celle du shell.\\ Voyons simplement dans les grandes lignes ce qu'est un processus, comment le shell permet de repérer un processus, et un exemple très simple d'​utilisation d'un processus.\\
 +
 +>Pour simplifier, on peut dire qu'un processus est un programme en cours d’exécution.
 +>Quand on lance une commande cela fait appel à un exécutable (un binaire ou un script), ​
 +>qui est dans la mémoire morte (dans le disque dur).
 +>Mais lorsqu'​un processus se lance, les instructions du programme passe en 
 +>​mémoire vive pour que le programme soit exécuté par le processeur.
 +
 +>Enfin un processeur ne peut exécuter qu'un processus à la fois, même si 
 +>du point de vue de l'​utilisateur,​ il semble que le système fait plusieurs ​
 +>choses en même temps. ​
 +>Cette impression est due à la rapidité de calcul du processeur, ​
 +>mais en réalité un programme essentiel au système, //​l'​ordonnanceur//, ​
 +>gère la priorité des différents processus placés en mémoire vive. 
 +
 +>Un processus peut donc être suspendu, relancé, mis en arrière plan (job), ​
 +>en premier plan, être un processus père ou enfant, être orphelin, et même devenir un zombie 8-).
 +>La gestion des processus nécessite donc que chaque processus possède un identifiant.
 +
 +>Enfin, une des particularités des systèmes GNU/Linux,
 +>​c'​est qu'un processus s'​exécute en fonction les droits accordés ​
 +>à l'​utilisateur qui l'a lancé. ​
 +>Ceci participe fortement à la sécurité du système. ​
 +
 +===Identifier un processus=== ​
 +>Un processus est identifié par un numéro unique que l'on appelle le PID (Process IDentifiant).
 +>Et chaque processus dispose d'un processus père que l'on appelle le PPID (Parent PID).
 +
 +>​Excepté le processus //init// qui a comme particularité d'​être le premier processus
 +>et de toujours utiliser le PID 1. 
 +>Ce processus démarre ensuite des processus noyaux et les premiers processus systèmes.
 +
 +Pour se faire plaisir en observant la hiérarchie des processus ;-) :
 +<code user>
 +pstree -p
 +</​code>​
 +>​l'​option -p permet d'​afficher le PID en plus de la hiérarchie.
 +
 +Pour se faire très plaisir ^_^ en observant la liste des processus de manière dynamique :
 +<code user>
 +top
 +</​code>​
 +Pour aller plus loin sur la récupération du PID voir : 
 +  * [[doc:​systeme:​ps?​s[]=ps|la commande ps]]
 +  * [[doc:​systeme:​top?​s[]=top|la commande top]]
 +  * [[http://​fr.wikibooks.org/​wiki/​Le_syst%C3%A8me_d%27exploitation_GNU-Linux/​Processus]]
 +
 +=== Exemple pratique : tuer un processus ===
 +Imaginons que vous vous êtes endormi devant votre messagerie.\\ A votre réveille 8-o : impossible de fermer la fenêtre de icedove avec la souris.\\
 +Dans ce cas, le plus simple est tuer le processus d'​exécution de icedove.
 +  * Retrouver le processus :
 +  - ouvrir par exemple TTY1 : ctrl+Alt+F1
 +  - se loguer et entrer son mot de passe utilisateur
 +  - récupérer le PID du processus icedove : 
 +<code user>
 +ps -A | grep icedove
 +</​code>​
 +  * Tuer le processus :
 +<code user>
 +4245  pts/0   ​00:​00:​02 ​ icedove
 +</​code>​
 +<code user>
 +exit
 +</​code>​
 +  * Revenir sur l'​interface graphique : ctrl+Alt+F7
 +
 +Quelques exemples pour illustrée la notion de processus : 
 +  * [[atelier:​chantier:​script-bash-variables-arguments-parametres?&#​exportation-de-la-valeur-d-une-variable|Exportation de la valeur d'une variable]].
 +  * [[atelier:​chantier:​script-bash-enchainement-de-commandes-et-etat-de-sortie#​notion-de-sous-shell|sous-shell]]
  
 ===== Quotes, apostrophe, guillemets et apostrophe inversée ===== ===== Quotes, apostrophe, guillemets et apostrophe inversée =====
Ligne 234: Ligne 307:
 <code user>​ls</​code>​ <code user>​ls</​code>​
 <​code>​dossier1 ​ dossier2 ​ dossier3</​code>​ <​code>​dossier1 ​ dossier2 ​ dossier3</​code>​
-  * puis (**Attention,​ cette commande est dangereuse, elle efface tout le contenu du dossier, à ne pas taper dans votre dossier personnel sous peine de tout perdre de manière irrémédiable !**) : 
 <code user>rm `ls`</​code>​ <code user>rm `ls`</​code>​
-  * et pour vérifier que tout a été supprimé :​+<note warning>​ 
 +Attention, cette commande est dangereuse !\\  
 +Elle efface tout le contenu du dossier.\\  
 +À ne pas lancer dans votre dossier personnel sous peine perdre de manière irrémédiable de tous vos fichiers ​ ! 
 +</​note>​ 
 +>​Pour ​vérifier que tout a été supprimé :​
 <code user>​ls</​code>​ <code user>​ls</​code>​
  
Ligne 246: Ligne 323:
 <​code>​dossier1 ​ dossier2 ​ dossier3</​code>​ <​code>​dossier1 ​ dossier2 ​ dossier3</​code>​
  
-  * puis: 
 <code user>ls | xargs rm <code user>ls | xargs rm
 </​code>​ </​code>​
-  * et pour vérifier que tout a été supprimé :​+>​Pour ​vérifier que tout a été supprimé :​
 <code user>​ls</​code>​ <code user>​ls</​code>​
  
Ligne 257: Ligne 333:
 </​code>​ </​code>​
  
-Cette commande affiche le contenu du répertoire courant à l'​écran. Elle est (presque) ​strictement ​équivalente à ls.+>Cette commande affiche le contenu du répertoire courant à l'​écran. 
 +>Elle est (presque) ​ équivalente à ls.
  
   * **À voir** : [[http://​abs.traduc.org/​abs-5.0-fr/​ch11.html|Guide avancé d'​écriture des scripts Bash: 11. Substitution de commandes]]   * **À voir** : [[http://​abs.traduc.org/​abs-5.0-fr/​ch11.html|Guide avancé d'​écriture des scripts Bash: 11. Substitution de commandes]]
Ligne 263: Ligne 340:
 ===== Métacaractères et méta-caractères !===== ===== Métacaractères et méta-caractères !=====
  
-==== Définition ​courante ​de métacaractère et détail ====+==== Définition ​usuelle ​de métacaractère et détail ====
   * Un métacaractère (en anglais, wild card ou joker) est un caractère qui représente un ou plusieurs autres caractères qui eux sont interprétés littéralement.   * Un métacaractère (en anglais, wild card ou joker) est un caractère qui représente un ou plusieurs autres caractères qui eux sont interprétés littéralement.
  
Ligne 277: Ligne 354:
 | brackets ​                  ​| ​         [ ] (plage de caractères [12] ou union [1-3]) ​ || | brackets ​                  ​| ​         [ ] (plage de caractères [12] ou union [1-3]) ​ ||
  
-  * D'​autre part, man glob et man bash les appellent ​au contraire ​caractères génériques.\\  +  * Attention à la confusion !\\  
-En effet, une chaîne de caractères ordinaires est un motif. Et un motif contenant un ou plusieurs "​caractères ​géniriques" est appelé un "motif générique"​. +Man glob et man bash appellent ​ces caractères,​ non pas des métacaractères mais caractères génériques(( Et un enchaînement de motifs génériques est nommée par extension, une expression générique
- +En effet, une chaîne de caractères ordinaires est un motif. Et un motif contenant un ou plusieurs "​caractères ​génériques" est appelé un "motif générique"​.)).\\
-Les caractères génériques servent à évoquer un ou plusieurs caractères ; mais aussi l'​emplacement d'un et/ou plusieurs caractères. +
- +
-Quant au globbing, cela concerne l'​opération qui permet d'​invoquer par un motif générique,​ une liste de noms de fichiers pouvant correspondre à ce motifs. +
- +
-Un enchaînement de motifs génériques est nommée par extension, //une expression générique//​. +
- +
-Dans la terminologie de man bash, il s'agit bien des mêmes caractères recouvrant la même fonction. Bref, Un caractère générique est une sous-classe de ce qui y est appelé caractère spécial et renvoie à la fonction de globbing.+
  
 +  * Quant au globbing, cela concerne l'​opération qui permet d'​invoquer,​ par un motif générique,​ une liste de noms de fichiers pouvant correspondre à ce motifs.
    
-<note tip>Pour simplifier, on peut appeler les caractères génériques et expressions génériques,​ des globs en référence à la commande glob ou à l'​option extglob de la commande shopt.\\+<note tip> Pour simplifier, on peut appeler les caractères génériques et expressions génériques,​ des globs en référence à la commande glob ou à l'​option extglob de la commande shopt.\\
 Voir : man bash ligne 1914,sq. et man glob Voir : man bash ligne 1914,sq. et man glob
  
 En définitive,​ dans la suite j'​emploierai le terme "​métacaractère"​ comme synonyme de globs simples et bracket. En définitive,​ dans la suite j'​emploierai le terme "​métacaractère"​ comme synonyme de globs simples et bracket.
 +
 </​note>​ </​note>​
  
-  * Enfin, ces expressions génériques sont issues d'un mécanisme plus large et plus complexe appelé, //​expressions rationnelles//​((ou //​expressions régulières//,​ et en anglais //regular expressions//​ souvent abrégé en //regex// ou //​regexp//​)).+  * Enfin, ces expressions génériques ​(man bash), ou métacaractères (terminologie usuelle) ​sont issues d'un mécanisme plus large et plus complexe appelé, //​expressions rationnelles//​((ou //​expressions régulières//,​ et en anglais //regular expressions//​ souvent abrégé en //regex// ou //​regexp//​)).
    
     * Voir : [[doc:​systeme:​grep|Regexp et grep]]\\ ​     * Voir : [[doc:​systeme:​grep|Regexp et grep]]\\ ​
Ligne 335: Ligne 407:
 .cache ​ .config .cache ​ .config
 </​code>​ </​code>​
- 
-<note warning>​FIXME à revoir 
  
 **Il y a un piège !** **Il y a un piège !**
Ligne 360: Ligne 430:
 </​code>​ </​code>​
 => liste du répertoire courant : tous les noms de fichiers normaux cachés et le nom de tous les fichiers cachés de type-répertoire (sans leurs contenus cette fois !) => liste du répertoire courant : tous les noms de fichiers normaux cachés et le nom de tous les fichiers cachés de type-répertoire (sans leurs contenus cette fois !)
-</​note>​+
  
 === Vivre dangereusement supprimer tous les fichiers cachés d'un répertoire ! === === Vivre dangereusement supprimer tous les fichiers cachés d'un répertoire ! ===
Ligne 442: Ligne 512:
 </​note>​ </​note>​
  
-==== //Méta-caractères//, ou //opérateurs de contrôle et de redirection// ====+==== Méta-caractères,​ ou opérateurs de contrôle et de redirection ====
  
 ===Définition particulière === ===Définition particulière ===
Ligne 453: Ligne 523:
 </​code>​ </​code>​
  
-Un**mot** est quant à lui //une séquence de caractères considérée comme une unité élémentaire par le shell. On parle également de token (jeton)//.+Un **mot** est //une séquence de caractères considérée comme une unité élémentaire par le shell. On parle également de token (jeton)//.
  
-Mais pourquoi évoquer les mêmes caractères sous des appellations différentes ? +  * Attention ​dans ce sensle terme de méta-caractère ​ne renvoie pas aux caractères génériques (man bash) ou au globbing et pattern mais fait référence ​à l'​analyse et au traitement par le shell de la ligne de commande. ​ 
- +  * L'​ordre d'​analyse est le suivant :
-Pourquoi trouve-t-on certains caractères ​dans la définition des méta-caratères ci-dessusmais aussi dans la liste des opérateurs ​de contrôle ? S'​agit-il de la même chose? +
- +
-Cette appellation ​méta-caractère ​que l'on trouve dans le man bash, renvoie ​à l'​analyse et au traitement par le shell de la ligne de commande. L'​ordre d'​analyse est le suivant :+
   - découpage lexical en mots ;   - découpage lexical en mots ;
   - découpage en commandes (lignes de tubes, instructions de contrôle (if, while...) ) ;   - découpage en commandes (lignes de tubes, instructions de contrôle (if, while...) ) ;
Ligne 470: Ligne 537:
   - récupération de la sortie   - récupération de la sortie
  
-Chacun des caractères ​ci-dessus permet ​de découper la ligne de commande en mots à l'aide des blancs, non seulement avec "​espace"​ et tabulation",​ mais aussi avec ces autres séparateurs ​de mots : | (il ne s'agit pas "​encore"​ du pipe)  &  ;   , ​  < ​ ,  >+<note tip> En bref !!! 
 +  * Les caractères ​servant au globbing et au perttern, sont désignés dans le man bash de caractères génériques.\\ Mais à l'usage on parle de métacaractères.
  
-Ce qu'il faut comprendre, c'est que "​espace et "​tabulation" ​permettent de déterminer la commande ​(premier mot), des (ou de l'​option) options (reconnue(s) ​par - placé avant elle(s), et les arguments. +  * Les caractères qui permettent ​le mécanisme de lecture d'une ligne de commande par le shell sont appelés dans le man bash méta-caractères.\\ Mais à l'​usage on parle de mots réservés.
-Les autres signes ci-dessus, désignés de méta-caractères, sont des séparateurs ​de mots différents de "​espace"​ et "​tabulation"​ parce que, en plus de séparer les mots, ils indiquent le contexte d'​exécution des commandes.+
  
-Ce qu'il faut comprendre c'est que les méta-caractères,​ outre "​espace"​ et "​tabulation",​ font partie des caractères spéciaux de bash. Il s'agit avec cette définition d'une première évocation simplifiée indiquant que parmi tous les caractères spéciaux, ces "​méta-caractères"​ se trouvent là présentés seuls  | & ; ( ) < >  pour indiquer que leurs significations dépendra de l'​étape 2 ci-dessus, du contexte des commandes. Ce contexte dépend des commandes puis selon la composition de ces méta-caractères entre eux, et/ou la présence de commandes, de la mise en œuvre des commandes internes, des opérateurs d'​enchaînement de commandes, des opérateurs de redirection. +  * On distingue ​deux sortes de mots réservés : les opérateurs de contrôle et les opérateurs de redirection.
- +
-<​note>​À l'​usage,​ on regroupe ces "​méta-caractères",​ sous l'​appellation de "mots réservés"​. Il y a deux sortes de mots réservés : les opérateurs de contrôle et les opérateurs de redirection.+
 </​note>​ </​note>​
  
Ligne 495: Ligne 560:
 C'est un " OU " logique qui apparaît dans deux cas :\\  C'est un " OU " logique qui apparaît dans deux cas :\\ 
 1) avec ;; dans le contexte de la commande "​case"​ ;\\  1) avec ;; dans le contexte de la commande "​case"​ ;\\ 
-<​code>​+<​code ​bash>
 case $variable-name in case $variable-name in
    ​pattern1|pattern2|pattern3    ​pattern1|pattern2|pattern3
Ligne 510: Ligne 575:
  
     * Il signifie la aussi " OU "​\\ ​     * Il signifie la aussi " OU "​\\ ​
-Par exemple : <​code>​ls ~/​Test/​!(*jpg|*bmp)</​code>​+Par exemple : <​code ​user>ls ~/​Test/​!(*jpg|*bmp)</​code>​
  
   * Deuxièmement,​ on retrouve la paire de parenthèses dans le contexte de la commande "​function"​.   * Deuxièmement,​ on retrouve la paire de parenthèses dans le contexte de la commande "​function"​.
-<​code>​+<​code ​bash>
 name (){ name (){
 commands commands
doc/programmation/shells/bash-les-differents-caracteres-speciaux.txt · Dernière modification: 01/04/2023 19:17 par agp91

Pied de page des forums

Propulsé par FluxBB