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 | 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:37] Hypathie [A ) Shell BASH] |
doc:programmation:shells:bash-les-differents-caracteres-speciaux [27/05/2014 18:50] Hypathie [A ) Shell BASH] |
||
---|---|---|---|
Ligne 48: | Ligne 48: | ||
**Pour savoir quel shell vous utilisez par défaut, tapez :** | **Pour savoir quel shell vous utilisez par défaut, tapez :** | ||
+ | Pour connaître les variables d'environnement de son système tapez dans le terminal : | ||
+ | <code user> | ||
+ | env | ||
+ | </code> | ||
+ | Le retour est copieux ! Mais au début on trouve : | ||
+ | <code> | ||
+ | SHELL=/bin/bash | ||
+ | </code> | ||
+ | Ce qui signifie que le nom de l'interpréteur de commande est bash. | ||
+ | |||
+ | **Autre méthode plus directe :** | ||
<code user> | <code user> | ||
user@debian-facile:~$ echo $SHELL | user@debian-facile:~$ echo $SHELL | ||
Ligne 174: | Ligne 185: | ||
- | =====B ) Métacaractères et méta-caractères !===== | + | =====B) Quotes, apostrophe, guillemets et apostrophe inversée ===== |
+ | |||
+ | ==== Simple quote ou apostrophe ==== | ||
+ | |||
+ | Les simples quotes : ' délimitent une chaîne de caractères. \\ | ||
+ | Même si cette chaîne contient des commandes ou des variables shell, celles-ci ne seront pas interprétées. Par exemple : | ||
+ | <code bash> | ||
+ | $ variable='secret' | ||
+ | $ echo 'Mon mot de passe est $variable.' | ||
+ | Mon mot de passe est $variable.</code> | ||
+ | |||
+ | ==== Doubles quotes ou guillements ==== | ||
+ | |||
+ | Les doubles quotes : " délimitent une chaîne de caractères, mais les noms de variable sont interprétés par le shell. Par exemple : | ||
+ | <code bash> | ||
+ | $ variable="secret" | ||
+ | $ echo "Mon mot de passe est $variable." | ||
+ | Mon mot de passe est secret.</code> | ||
+ | |||
+ | Ceci est utile pour générer des messages dynamiques au sein d'un script. | ||
+ | |||
+ | <note tip> | ||
+ | **Remarquez bien la différence :**\\ | ||
+ | __**Comme ceci, le shell va se trouver à interpréter chaque argument séparément.**__ | ||
+ | <code user> | ||
+ | echo coucou tout le monde | ||
+ | </code> | ||
+ | |||
+ | __**Comme cela le shell interprète toute la chaîne comme un seul argument.**__ | ||
+ | <code user> | ||
+ | echo "coucou tout le monde" | ||
+ | </code> | ||
+ | </note> | ||
+ | |||
+ | |||
+ | ==== Anti-quote ou apostrophe inversée ==== | ||
+ | |||
+ | 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. | ||
+ | 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.\\ | ||
+ | |||
+ | ===Préparation :=== | ||
+ | * 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` | ||
+ | |||
+ | #puis ls pour vérifier qu'il n'y a plus de fichier (retour du prompt) | ||
+ | </code> | ||
+ | |||
+ | * 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> | ||
+ | echo `ls` </code> | ||
+ | |||
+ | Cette commande affiche le contenu du répertoire courant à l'écran. \\ | ||
+ | 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 !===== | ||
====1)Définition courante de métacaractère et détail==== | ====1)Définition courante de métacaractère et détail==== | ||
Ligne 480: | Ligne 576: | ||
====2) les alias ==== | ====2) les alias ==== | ||
+ | |||
+ | * **Avant tout le chapitre : [[doc:programmation:shell:shell#alias|Le shell pour tous : Les Alias]]** | ||
+ | |||
* **L'essentiel est là : [[doc:programmation:bash:alias|Maîtriser les alias bash]]** | * **L'essentiel est là : [[doc:programmation:bash:alias|Maîtriser les alias bash]]** | ||