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 →
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente | Prochaine révision Les deux révisions suivantes | ||
doc:programmation:shells:bash-les-differents-caracteres-speciaux [27/05/2014 17:51] Hypathie [B ) Métacaractères et méta-caractères !] |
doc:programmation:shells:bash-les-differents-caracteres-speciaux [27/05/2014 18:39] Hypathie [Quotes, apostrophe, guillemets et apostrophe inversée] |
||
---|---|---|---|
Ligne 174: | Ligne 174: | ||
- | ===== Quotes, apostrophe, guillemets et apostrophe inversée ===== | + | =====B) Quotes, apostrophe, guillemets et apostrophe inversée ===== |
==== Simple quote ou apostrophe ==== | ==== Simple quote ou apostrophe ==== | ||
Ligne 195: | Ligne 195: | ||
Ceci est utile pour générer des messages dynamiques au sein d'un script. | Ceci est utile pour générer des messages dynamiques au sein d'un script. | ||
- | Remarquez bien la différence entre : | + | <note tip> |
- | echo coucou tout le monde | + | **Remarquez bien la différence :**\\ |
- | Ici, le shell va se trouver à interpréter chaque argument séparément. | + | __**Comme ceci, le shell va se trouver à interpréter chaque argument séparément.**__ |
+ | <code user> | ||
+ | echo coucou tout le monde | ||
+ | </code> | ||
- | Alors qu'ici : | + | __**Comme cela le shell interprète toute la chaîne comme un seul argument.**__ |
- | echo "coucou tout le monde" | + | <code user> |
+ | echo "coucou tout le monde" | ||
+ | </code> | ||
+ | </note> | ||
- | Le shell interprètera toute la chaîne comme un seul argument. | ||
==== Anti-quote ou apostrophe inversée ==== | ==== Anti-quote ou apostrophe inversée ==== | ||
Ligne 208: | Ligne 213: | ||
Bash considère que les anti-quotes (`) délimitent une commande à exécuter. \\ | Bash considère que les anti-quotes (`) délimitent une commande à exécuter. \\ | ||
Les noms de variable et les commandes sont donc interprétés. | Les noms de variable et les commandes sont donc interprétés. | ||
+ | Autrement dit, les anti-quotes((L'anti-quote s'obtient avec les 2 touches simultanées du clavier : ''AltGr 7'')) remplacent de manière itérative un argument par une commande, comme le fait la commande xargs.\\ | ||
- | Par exemple en mettant toute cette commande entre deux Anti-quotes((L'anti-quote s'obtient avec les 2 touches simultanées du clavier : ''AltGr 7'')) : | + | ===Préparation :=== |
- | $ echo `variable="connu"; echo "Mon mot de passe est $variable."` | + | * soit un fichier "Dossier.txt" contenant "dossier1"; "dossier2" ; "dossier3" |
+ | <code user> | ||
+ | mkdir Dossier.txt | ||
+ | cd ~/Dossier.txt/ | ||
+ | touch dossier1 | ||
+ | touch dossier2 | ||
+ | touch dossier3 | ||
+ | </code> | ||
+ | |||
+ | *toujours au niveau de Dossier.txt : | ||
+ | <code user> | ||
+ | ls | ||
+ | dossier1 dossier2 dossier3 | ||
+ | </code> | ||
+ | * puis : | ||
+ | <code user> | ||
+ | rm `ls` | ||
- | On obtiendra : | + | #puis ls pour vérifier qu'il n'y a plus de fichier (retour du prompt) |
- | Mon mot de passe est connu. | + | </code> |
- | Autre exemple : | + | * comparez maintenant avec : |
+ | <code user> | ||
+ | touch dossier1 | ||
+ | touch dossier2 | ||
+ | touch dossier3 | ||
+ | ls | ||
+ | dossier1 dossier2 dossier3 | ||
+ | </code> | ||
+ | * puis: | ||
+ | <code user> | ||
+ | ls | xargs rm | ||
+ | #puis ls pour vérifier qu'il n'y a plus de fichier (retour du prompt) | ||
+ | </code> | ||
+ | |||
+ | * Autre exemple : | ||
<code bash> | <code bash> | ||
echo `ls` </code> | echo `ls` </code> | ||
Ligne 222: | Ligne 258: | ||
Elle est strictement équivalente à ls. | Elle est strictement équivalente à ls. | ||
+ | * **À voir : [[http://abs.traduc.org/abs-5.0-fr/ch11.html|Guide avancé d'écriture des scripts Bash: 11. Substitution de commandes]]** | ||
=====c ) Métacaractères et méta-caractères !===== | =====c ) Métacaractères et méta-caractères !===== | ||