for循环中的循环变量错误

for循环中的循环变量错误

当我使用

 for i in 1 2 3 4 5 

那么我的文件包含#!/bin/sh在顶部。

但当我使用

for(( i = 0; i<=5; i++))

然后它显示错误

Syntax error: Bad for loop variable

当我删除shebang时,它仍然正常运行。请告诉我这背后的原因。

答案1

for(( i = 0; i<=5; i++))是 Bash 特有的,不能与普通的 Bourne shell ( /bin/sh) 一起使用。

如果你删除shebang,脚本将由你当前的shell(可能是Bash)运行,因此它可以工作。

替换#!/bin/sh#!/bin/bash,以使shebang正常工作。

答案2

我已经通过使用 ./ 而不是 sh 命令解决了这个问题。例如,如果您将sh test.sh命令改为,./test.sh则问题很可能就会得到解决。

答案3

for(( i = 0; i<=5; i++))

因为这种类型的循环仅在 Bash shell 上运行。因此,如果您想运行它,请尝试以下命令:

$bash filename.sh

我认为它会很好用。然后看看这个还。

答案4

尝试一下也许这可以解决你的问题

#!/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

相关内容