La dernière nouvelle ligne sur fstab est-elle importante?

Que se passe-t-il si la dernière ligne de fstab n'est pas terminée par une nouvelle ligne?

Pourquoi les gens reçoivent-ils un avertissement lorsque cette dernière ligne n'est pas interrompue par une nouvelle ligne?

Une ligne est une séquence de caractères terminée par un caractère de nouvelle ligne. Les caractères qui apparaissent après le dernier saut d'un file ne font pas partie d'une ligne.

Un tel file qui a des caractères après le dernier saut n'est pas un file text selon la définition POSIX d'un file text et le comportement des utilitaires de text n'est pas spécifié dans ce cas et dans la pratique, le comportement varie:

  • Certains ignorent complètement ces caractères (ignorez cette ligne non-terminée)
  • Certains le considèrent comme une ligne et préservent l'absence de newline (comme GNU sed )
  • Certains le considèrent comme une ligne et ajoutent la nouvelle ligne manquante (comme la cut GNU)
  • Certains comportements changent de comportement. Comme read qui renvoie un état de sortie différent de zéro lors de la lecture d'une ligne non terminée.

Ainsi, même si les utilitaires mount , swapon , fsck … (ceux qui lisent typiquement / etc / fstab) include des lignes non terminées, certains scripts qui traitent ce file peuvent toujours échouer. Vous devez toujours vous assurer que les files text sont terminés par un caractère de nouvelle ligne (sauf s'ils sont vides). Les éditeurs de text devraient le faire par défaut. Vous devez généralement passer par les cerceaux pour supprimer les derniers caractères de nouvelle ligne.