Aller au contenu

Découpage en mots

Découpage en mots (en anglais word splitting) : étape de l'analyse d'une ligne où Bash coupe en plusieurs arguments le résultat des expansions non protégées par des guillemets (variable, substitution de commande, arithmétique), selon les caractères de la variable IFS. Elle n'agit jamais sur le texte tapé directement, seulement sur ce qui sort d'une expansion, et elle est suivie de l'expansion des chemins, qui remplace les mots contenant *, ? ou [ par les fichiers correspondants.

C'est la cause du bogue le plus courant des scripts shell : rm $fichier supprime deux fichiers quand le nom contient une espace. Les guillemets doubles ("$fichier", "$(commande)", "$@") empêchent le découpage ; ShellCheck signale leur absence par SC2086.

Dans les cours

Voir aussi