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