You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

34 lines
1.6 KiB

This file contains invisible Unicode characters!

This file contains invisible Unicode characters that may be processed differently from what appears below. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to reveal hidden characters.

# Les erreurs les plus fréquentes
## Espaces
* L'espace insécable
* `cat /etc/passwd | wc -l` : *bash:  wc : commande introuvable* ???
* Inséré par mégarde en faisant `AltGr+espace`. Reconnu comme un caractère alphabétique → bug.
* Les espaces
* Jamais quand affectation `a='le lapin'`
* Toujours dans les tests `if [ "$a" = 'Le lapin' ];`
* Protéger ses variables quand elles peuvent avoir des espaces `"$fichier"`
## Variables
* On accède au *contenu* d'une variable par `$` : `if [ $var = value ]`
* L'affectation d'une variable a besoin de son *nom* : `file="$selected"`
## Utiliser le bon outil
* Utiliser l'`*` pour énumérer les fichier : `for fichier in /tmp/*.pdf; do ...`
* Pas de logique de tableau en shell de base, une logique de flux
* Parcours des arguments avec `for arg; do echo $arg; done`
* Mettez un `set -x` pour activer le déboguer et un `set +x` pour le désactiver.
* Si vous avez tendance à vous tromper sur les noms de variable, le `set -u` est votre ami.
## Bonne pratiques
* Soyez *précis* : *Argument* et *entrée standard*, ce n'est pas pareil !
* On lit une question avant en intégralité avant d'y répondre.
* On ne prend pas des bouts de code sur le net qu'on ne comprend pas (j'ai vu du PHP dans du shell!).
* Le cours, ça sert. Le `man` aussi. Si ce n'est pas dedans, on cherche sur le net. Quand on trouve de la doc, on lit "autour", pas juste la partie qui semble vous intéresser sur le moment.
* Maintenez un document avec une liste des commandes que vous connaissez : vous perdez trop de temps à retrouver des choses que vous connaissiez avant.