설명 할 수없는 이상한 동작입니다. 예상 가능한 난수 시퀀스를 생성하기 위해 셸을 사용하고 싶습니다. $ RANDOM을 시드와 함께 사용합니다. 다음은 테스트 프로그램입니다.
RANDOM=15
echo $RANDOM
이 코드는 실행할 때마다 동일한 번호를 부여하여 올바르게 작동합니다. 그러나이 프로그램에 파이프를 추가하면 매번 다른 결과가 나타납니다. 다음과 같은 간단한 프로그램을 사용해보십시오.
RANDOM=15
echo $RANDOM | cat
문제점에 대한 2 개의 수정 사항을 발견했지만 예측할 수는 있지만 여전히 이유를 설명 할 수 없습니다.
수정 한
RANDOM=15
x=$RANDOM
echo $x | cat
수정 2
(RANDOM=15
echo $RANDOM) | cat
나는 리눅스와 Mac에서 시도했다. 이 동작은 일관성이 있습니다. 누군가 설명 할 수 있니?
(15) 후 첫 난수를 제공합니다 유도체). 이것은'shell '이 아니라'bash'라고 태그를 붙여야하고'/ bin/sh'로 시작하는 스크립트에서'RANDOM'을 사용하지 말아야합니다.'/ bin/sh' 통역사. –