# "!", "$1", "$#" ... symboles et variables dans bash

**URL:** <https://www.debian-fr.org/t/1-symboles-et-variables-dans-bash/71452>\
**Category:** Programmation\
**Created:** [Octobre 24, 2016, 3:20 UTC](https://www.debian-fr.org/t/1-symboles-et-variables-dans-bash/71452 "2016-10-24T03:20:30Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![rasdehya](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/r/f1d935/32.png) [@rasdehya](https://www.debian-fr.org/u/rasdehya)\
**Post date:** [Octobre 24, 2016, 3:20 UTC](https://www.debian-fr.org/t/1-symboles-et-variables-dans-bash/71452/1 "2016-10-24T03:20:30Z")

</div>

Salut.  
J ai découvert en commencant à nager dans le terminal l’indispensable commande “!!” qui renvoi la dernière commande dans le terminal. a force de galère avec les sudo ca m’a bien servi.  
Puis qd j ai commencé a écrire 2-3 alias et fonctions, est arrive la tout autant indispensable variable $1 qui renvoi le dernier paramètre rentré dans la dernière commande.  
Alors en cherchant un peu j’ai découvert $# qui renvoi le code retour (soit 0 soit 1) de la dernière commande… j imagine que ca dois grave servir…

Y a t il donc d autres variables ou combinaison qui doivent etre connues?  
Voila le debut :

!! --\> renvoie la derniere commande  
$1 --\> renvoie le premier argument de la derniere commande  
$# --\> renvoie le code retour de la derniere commande (0 ou 1)  
…  
$? --\>

---

<div class="post-metadata">

**Author:** ![PengouinPdt](https://www.debian-fr.org/user_avatar/www.debian-fr.org/pengouinpdt/32/3978_2.png) [@PengouinPdt](https://www.debian-fr.org/u/PengouinPdt)\
**Post date:** [Octobre 24, 2016, 6:34 UTC](https://www.debian-fr.org/t/1-symboles-et-variables-dans-bash/71452/2 "2016-10-24T06:34:09Z")

</div>

Bonjour,

Un peu de lecture en anglais :

- [http://wiki.bash-hackers.org/syntax/shellvars](http://wiki.bash-hackers.org/syntax/shellvars)
- [http://tldp.org/LDP/Bash-Beginners-Guide/html/sect\_03\_02.html](http://tldp.org/LDP/Bash-Beginners-Guide/html/sect_03_02.html) \<= cf chap 3.2.5

---

<div class="post-metadata">

**Author:** ![anon29980398](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/a/f4b2a3/32.png) [@anon29980398](https://www.debian-fr.org/u/anon29980398)\
**Post date:** [Octobre 24, 2016, 10:44 UTC](https://www.debian-fr.org/t/1-symboles-et-variables-dans-bash/71452/3 "2016-10-24T10:44:39Z")

</div>

> [@rasdehya](#):
>
> $# --\>; renvoie le code retour de la derniere commande (0 ou 1)  
> …  
> $? →

plutôt :

```auto
$# --> renvoie le nombre d'arguments passés à la commande
…
$? --> renvoie le code retour de la dernière commande (0 ou 1)

```

---

<div class="post-metadata">

**Author:** ![Almtesh](https://www.debian-fr.org/user_avatar/www.debian-fr.org/almtesh/32/10312_2.png) [@Almtesh](https://www.debian-fr.org/u/Almtesh)\
**Post date:** [Octobre 24, 2016, 11:45 UTC](https://www.debian-fr.org/t/1-symboles-et-variables-dans-bash/71452/4 "2016-10-24T11:45:26Z")

</div>

Et les commandes ont le droit de retourner autre chose que 0 et 1, il peut y avoir des valeurs différentes pour préciser l’erreur exacte qui est survenue, comme, pas exemple, pour `e2fsck` :

```nohighlight
CODE DE SORTIE
       Le code de sortie retourné par e2fsck est la somme des conditions suivantes :
            0 - Aucune erreur
            1 - Erreurs du système de fichiers corrigées
            2 - Erreurs du système de fichiers corrigées, le système
                   devrait être redémarré
            4 - Il subsiste des erreurs non corrigées dans le système de fichiers
            8 - Erreur d'opération
            16 - Erreur d'utilisation ou de syntaxe
            32 - E2fsck annulé par l'utilisateur
            128 - Erreur de bibliothèque partagée

```

---

<div class="post-metadata">

**Author:** ![rasdehya](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/r/f1d935/32.png) [@rasdehya](https://www.debian-fr.org/u/rasdehya)\
**Post date:** [Octobre 24, 2016, 6:08 UTC](https://www.debian-fr.org/t/1-symboles-et-variables-dans-bash/71452/5 "2016-10-24T18:08:13Z")

</div>

Ok merci pour la correction du $# et la précision sur le fonctionnement des codes erreurs.  
T’assure PingouinPdt pour le 2eme lien . C’est exactement ce que je cherchais… il y sont tous, avec exemples. je garde bash-hacker en signet  
Sujet resolu. Merci
