Input Field Separators

Un article de Wikipédia, l'encyclopédie libre.
Ceci est la version actuelle de cette page, en date du 12 octobre 2020 à 17:54 et modifiée en dernier par Matiboux (discuter | contributions). L'URL présente est un lien permanent vers cette version.
(diff) ← Version précédente | Voir la version actuelle (diff) | Version suivante → (diff)

IFS, ou input field separators[1] (ou internal field separators), est une variable de shell Unix (bash, sh, etc.) définissant les séparateurs de champ reconnus par l'interpréteur.

Cette variable, nommée IFS, est souvent qualifiée improprement de variable d'environnement, ce qui est inexact ; il serait plus rigoureux de parler de variable de shell (ou de variable système).

Valeur habituelle[modifier | modifier le code]

Par défaut, IFS définit comme séparateurs 3 caractères :

  1. L'espace
  2. La tabulation (\t)
  3. Le saut de ligne (\n).

Pour vérifier la valeur de la variable, il suffit de taper la commande :

set | grep ^IFS=

Le résultat habituel est :

IFS=$' \t\n'

On aura parfois besoin de redéfinir cette valeur, par exemple dans le cas où on ne souhaite pas que l'espace serve de séparateur (cas typique : on a à traiter des fichiers dont les noms contiennent des espaces) : IFS=$'\n' permet de ne traiter que les sauts de ligne comme internal field separator.

Références[modifier | modifier le code]

  1. « Shell Command Language », sur pubs.opengroup.org (consulté le )