web-dev-qa-db-ja.com

fstabの最後の改行は重要ですか?

Fstabの最後の行が改行で終了していない場合はどうなりますか?

その最後の行が改行で終了していないのに、なぜ人々は警告を受け取るのですか?

4
user4951

行は、改行文字で終了する一連の文字です。ファイルの最後の改行の後に表示される文字は、行の一部ではありません。

最後の改行の後に文字が含まれるこのようなファイルは、テキストファイルのPOSIX定義によるテキストファイルではなく、その場合のテキストユーティリティの動作は指定されておらず、実際には次のように動作します。

  • それらの文字を完全に無視するものもあります(終了していない行をスキップします)
  • 一部の人はそれを行と見なし、改行がないことを保持します(GNU sedなど)
  • 一部の人はそれを行と見なし、欠落している改行を追加し直します(GNU cutなど)
  • 一部のユーティリティの動作が変更されました。終了していない行を読み取るときにゼロ以外の終了ステータスを返すreadのように。

したがって、mountswaponfsck...ユーティリティ(通常は/ etc/fstabを読み取るユーティリティ)が終了していない行を理解している場合でも、そのファイルを処理するスクリプトがあります。それでも失敗する可能性があります。テキストファイルが(空でない限り)改行文字で終了していることを常に確認する必要があります。テキストエディタはデフォルトでそれを行う必要があります。通常、最後の改行文字を削除するには、フープを実行する必要があります。

5