2013-04-09 2 views
1

Когда я запускаю следующий скрипт, echo ничего не отображает, и я не знаю почему. Он работает, если я просто ввожу его в терминал, но не из сценария оболочки. Нужно понять, пожалуйста. Я мог бы быть усталым, но я очень уверен, что это должно работать:bash echo not display values ​​

#!/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, спасибо за того, что ребята. Я запускал сценарий с помощью команды: ** sh ./run.sh** вместо ** bash ./run.sh** – smac89

+3

@ Smac89: ** Затем вернул правильный путь к оболочке вашего терминала в первую строку сценария. ** – choroba

1

При запуске из терминала, вы, вероятно, использовать Баш, не ш.

Кажется, sh не поддерживает $RANDOM, и поэтому всем переменным, назначенным в вашем скрипте, будет присвоена пустая строка. Попытайтесь изменить первую строку своего скрипта на #!/bin/bash (или устанавливается хребет bash).

+0

Спасибо, что работает сейчас. Я был запущен с неправильными оболочками – smac89