2013-07-12 11 views
1

RANDOM 인쇄 서로 다른 출력 :임의의 명령 이상한 행동

[[email protected] /root]# echo $RANDOM 
7207 
[[email protected] /root]# echo $RANDOM 
8761 
[[email protected] /root]# echo $RANDOM 
29922 

RANDOM 인쇄 동일한 출력 :

[[email protected] /root]# value=`echo $RANDOM` 
[[email protected] /root]# echo $value 
5286 
[[email protected] /root]# value=`echo $RANDOM` 
[[email protected] /root]# echo $value 
5286 
[[email protected] /root]# value=`echo $RANDOM` 
[[email protected] /root]# echo $value 
5286 

나는이 이상한 행동을 얻을 수 없습니다. 누구든지 해결하도록 도와 줄 수 있습니까?

+0

간단한 해결책은'value = $ RANDOM'이지만,'$ (echo $ RANDOM)'이 모든 호출에서 똑같은 것을 인쇄하는 (memoizing?) 이유에 대한 답은 없습니다. – tjameson

+3

문제를 재현하지 못했습니다. 변수를 다시 확인할 수 있습니까? – Antarus

+2

zsh에서는 재현 할 수 있지만 bash에서는 재현 할 수 없습니다. 관련 항목 : http://lists.gnu.org/archive/html/bug-bash/2005-01/msg00239.html 아마 zsh가 메모를 얻지 못했을까요? 테스트 케이스 :'echo $ (echo $ RANDOM)'. 씨앗이 서브 쉘에서 다시 생성되지 않는 것 같습니다. – tjameson

답변

1

언제든지 echo $RANDOM이 실행될 때마다 새 '셸'에서 실행되므로 시작 시드 값이 동일하기 때문입니다. 시도하십시오 echo $RANDOM; echo $RANDOM 및 다른 번호가 표시됩니다. btw, BASH의 동작을 보지 못했지만 ZSH에서 볼 수 있습니다.