2013-04-09 3 views
1

다음 스크립트를 실행하면 echo는 아무 것도 표시하지 않고 이유를 모르겠습니다. 방금 터미널에 입력하면 작동하지만 쉘 스크립트에서는 작동하지 않습니다. 약간 통찰력을주십시오. 나는 피곤 수 있습니다하지만 난이 일을해야 매우 확신 : 터미널에서 실행bash는 값을 표시하지 않습니다.

#!/bin/sh 
for n in `seq 1 10` 
do 
    r=$RANDOM 
    t=$RANDOM 
    s=$RANDOM 
    f=$RANDOM 
    echo "$r $t $s $f" 
done 
    echo "Done" 

답변

4

터미널에 /bin/sh과 다른 쉘이 실행되었을 수 있습니다. 예를 들어 Ubuntu에서 /bin/sh/bin/dash으로 실행되지만 $RANDOM은 작동하지 않습니다. 작동 시키려면 /bin/bash 또는 /bin/ksh을 실행해야합니다.

+0

잘못된 쉘 실행중인 : 난 그냥 터미널에 입력하면 이 ** 그것은 작동 ** 오 NVM, 그 사람에 대한 감사합니다. ** bash ./run.sh** 대신 sh //run.sh** 명령을 사용하여 스크립트를 실행했습니다. – smac89

+3

@ Smac89 : ** 터미널 쉘의 올바른 경로를 첫 번째 줄에 넣는 것보다 스크립트의 – choroba

1

, 당신은 아마 쉬, bash는 사용하지 않음.

shs는 $RANDOM을 지원하지 않으므로 스크립트에 지정한 모든 변수에 빈 문자열이 할당됩니다. 스크립트의 첫 번째 행을 #!/bin/bash (또는 bash가 설치되어있는 경우)으로 변경하십시오.

+0

감사합니다. 내가 말했듯이 나는 내 껍질이 잘 작동 – smac89

관련 문제