Answers:
for(( i = 0; i<=5; i++))
是Bash专用的,不适用于普通的Bourne shell(/bin/sh
)。
如果删除shebang,脚本将由当前的shell(可能是Bash)运行,因此可以运行。
替换#!/bin/sh
为#!/bin/bash
以使Shebang正常工作。
i=0; while [ $i -le 5 ]; do echo $i; i=$((i+1)); done
for(( i = 0; i<=5; i++))
这种类型的循环仅在Bash shell上运行。因此,如果要运行此命令,请尝试以下命令:
$bash filename.sh
我认为它将正常运行。并看到这个。
我已经通过使用./代替sh命令解决了这个问题。举个例子,如果您把sh test.sh
命令改为:./test.sh
并且很可能会解决问题。
试试看可能是这样可以解决您的问题
#!/bin/bash
j=0
for (( i=1; i <= 5; i++ ))
do
echo "the loop is runing $i time: and value of j is $j"
j=`expr $j + 1`
done
sh
模式下进行吗?谢谢!