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) 를 의미 하는 플래그입니다 .

답변2

이 같은?

fgrep -xq 'version=31' version || { echo "Image is not Image 31"; exit 1; }

이것은 grep문자열 파일입니다. 문자열을 찾을 수 없으면 메시지를 표시하고 종료됩니다. 문자열을 찾으면 스크립트가 계속됩니다.versionversion=31

version=31버전이 변경될 것으로 예상되는 경우 변수로 대체할 수 있습니다 .

imgver="version=31"
fgrep -xq "$imgver" version || { echo "Image is not Image $imgver"; exit 1; }

관련 정보