Bashスクリプトでファイルの内容を確認する

Bashスクリプトでファイルの内容を確認する

version次のテキストを含むファイル(名前)があります。

version=31

bashファイルに以下が含まれていることを確認するスクリプトが必要ですversion=31。その場合はスクリプトを実行し続け、そうでない場合は次のメッセージで終了しますImage is not Image 31

どうすればいいですか?

ベストアンサー1

これが、関連するバージョンファイルで複数のイメージファイルを繰り返す大きなスクリプトの一部であるとしましょう。

# image_fname: the filename of the image file
# image_version_fname: the filename of the image version info file
# image_version: an integer with the supposed version number

if ! grep -F -x -q "version=$image_version" "$image_version_fname"
then
  printf 'Warning: Image "%s" is not image %d\n' "$image_fname" "$image_version" >&2
  echo 'Warning: Version file contains:' >&2
  cat "$image_version_fname" >&2
fi

grep「正規表現ではなく固定文字列で一致」(-F)、「行全体と一致」(-x)、および「一致自体ではなく終了状態にのみ興味があります」(-q)を意味するフラグです。

おすすめ記事