Uma linha é uma sequência de caracteres terminada por um caractere de nova linha. Os caracteres que aparecem após a última nova linha de um arquivo não fazem parte de uma linha.
Esse arquivo que possui caracteres após a última nova linha não é um arquivo de texto de acordo com a definição POSIX de um arquivo de texto, e o comportamento dos utilitários de texto não é especificado nesse caso e, na prática, o comportamento varia:
- Alguns ignoram esses caracteres completamente (pule essa linha não terminada)
- Alguns consideram isso como uma linha e preservam a ausência de nova linha (como o GNU
sed
) - Alguns consideram isso como uma linha e adicionam de volta a nova linha ausente (como o GNU
cut
) - Alguns comportamentos de utilitários são alterados. Como
read
, que retorna um status de saída diferente de zero ao ler uma linha não terminada.
Portanto, mesmo se os utilitários mount
, swapon
, fsck
... (aqueles que normalmente lêem / etc / fstab) entenderem linhas não terminadas, algum script que processa esse arquivo ainda pode falhar. Você deve sempre garantir que os arquivos de texto sejam finalizados por um caractere de nova linha (a menos que estejam vazios). Editores de texto devem fazer isso por padrão. Você geralmente precisa passar por aros para remover os últimos caracteres da nova linha.