2013-04-09 70 views
1

當我運行以下腳本時,echo不顯示任何內容,我不知道爲什麼。如果我只是將它輸入到終端中,而不是從shell腳本中輸入,它就可以工作。需要一些見解。我可能會很累,但我很確定這應該工作: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不同的shell。例如,在Ubuntu上,/bin/sh運行/bin/dash,但$RANDOM在那裏不起作用。您必須運行/bin/bash/bin/ksh才能使其正常工作。

+0

我的殼工作正常運行,就像我說: **,如果我只是將它輸入端子它的工作原理** 哦NVM,感謝那個傢伙。我正在使用以下命令運行該腳本:** sh ./run.sh**而不是** bash ./run.sh ** – smac89 2013-04-09 10:02:51

+3

@ Smac89:**比將正確的路徑放到您的終端的shell到第一行的腳本。** – choroba 2013-04-09 10:04:36

1

從終端運行時,您可能使用bash,而不是sh。

似乎sh不支持$RANDOM,因此您在腳本中分配的所有變量都將被分配空字符串。嘗試將腳本的第一行更改爲#!/bin/bash(或者安裝了bash)。

+0

感謝它現在的工作。我是用錯了殼 – smac89 2013-04-09 10:07:28