내장 test
및 [
유틸리티는 쉘이 "POSIX 모드"로 실행되는 경우에도 대부분의 쉘에서 ( "보다 오래된 -nt
") 및 -ot
( "이전보다") 테스트를 수행합니다. 내가 액세스 할 수있는 시스템). 이 테스트는 두 파일의 수정 타임 스탬프를 비교하기위한 것입니다. 문서화 된 의미는 구현에 따라 약간 다르지만 (하나 또는 다른 파일이 존재하지 않는 경우 발생하는 것과 관련하여) POSIX 사양test
에는 포함되지 않습니다 . 유틸리티를 위해 .
test
조건부 명령이 [KornShell] 쉘에서 제거 될 때 유틸리티 로 전달 되지 않았습니다 . 유틸리티의test
히스토리 구현에 내장 된 유틸리티 에 포함되지 않았기 때문sh
입니다.
/bin/sh
셸 스크립트 에서 파일 사이의 수정 타임 스탬프를 비교 하고 다음과 같이 한 파일이 다른 파일보다 최신인지 여부에 따라 조치를 취 한다고 가정 합니다.
if [ "$sigfile" -nt "$timestamp" ] ||
[ "$sigfile.tmp" -nt "$timestamp" ]
then
return
fi
... 내가 사용할 수있는 다른 유틸리티는 무엇 make
입니까? (스크립트의 나머지 부분을 말하면 다루기 어려울 것입니다)? 아니면 아무도 "역사적 구현"에서 스크립트를 실행하지 sh
않거나 다음 과 같은 특정 쉘에 대한 글을 사임 하지 않을 것이라고 가정해야 bash
합니까?
-nt
기능을 구현하지 않습니다test
. 1995. 올바른 행동을 원find
하더라도 기본 표현을 사용해야합니다bash
.