bash에서만 변수에 숫자가 포함되어 있는지 확인하는 구문

bash에서만 변수에 숫자가 포함되어 있는지 확인하는 구문

내 컴퓨터에서 오래된 스크립트를 살펴보던 중 이 if표현을 보았지만 그것이 무엇을 하는지 전혀 몰랐습니다. 누군가 이것을 설명할 수 있나요?

if ! [[ "${count// /}" =~ ^[0-9]+$ ]]
then
  echo 1
else
  echo $count
fi

값은 count문자열인 경우도 있고 정수인 경우도 있습니다.

답변1

그것을 구성 요소로 나누어 봅시다.

  1. 이 구문은 "${count// /}"변수 내용의 모든 공백을 빈 문자열로 바꾸는 매개변수 확장 구문입니다. 예를 들어 2 1그냥21
  2. 이 부분은 정규식 작업을 =~ ^[0-9]+$실행하여 bash왼쪽 문자열을 숫자 집합과 일치시킵니다.오직.
  3. 이 부분은 전체 연산을 무효화합니다. 즉 ! [[..]],count아니요일련의 숫자.
  4. 숫자 값을 출력했는데 if실패 할 경우 1)의 공백을 제거하지 않고 실제 값을 반환합니다 .echo1ifcount

관련 정보