bash 논리적 비교는 ,v로 끝나는 RCS 파일에 대해 잘못된 대답을 제공합니다.

bash 논리적 비교는 ,v로 끝나는 RCS 파일에 대해 잘못된 대답을 제공합니다.

명령 ls -al dog RCS/dog,v반환

-rw-r--r-- 1 simon simon   0 Apr 13 19:25 dog
-r--r--r-- 1 simon simon 191 Apr 13 19:28 RCS/dog,v

RCS/dog,v보다 최신 버전 임을 나타냅니다 dog.

if [[ RCS/$dog* -nt dog ]] ; then echo not older than dog ; else echo older than dog ; fi

반품 older than dog. 이 비교는 ,v로 끝나지 않는 파일에 대해 올바르게 수행되므로 .v로 끝나는 파일에는 문제가 있는 것 같습니다 ,v. 누구든지 이 문제를 해결하는 방법을 제안할 수 있습니까?

답변1

귀하의 예에서 당신은바꾸다당신의 기대를 표현하는 장소단어:

if [[ RCS/$dog* -nt dog ]] ; then echo not older than dog ; else echo older than dog ; fi

그건,

  • 이것은 변수입니다:$dog, 설정하지 않으면 다음과 같은 결과가 나타납니다.RCS/*(또는 다른 경우$dog로 설정되는 일이 발생합니다.cat).

  • 이것은 문자 그대로의 의미입니다:dog, 그리고RCS/dog*일치합니다RCS/dog,v

관련 정보