for循环中的循环变量错误

Gau*_*Rai 11 scripts

当我使用 for like

 for i in 1 2 3 4 5 
Run Code Online (Sandbox Code Playgroud)

然后我的文件包含#!/bin/sh在顶部。

但是当我使用

for(( i = 0; i<=5; i++))
Run Code Online (Sandbox Code Playgroud)

然后它显示错误

Syntax error: Bad for loop variable
Run Code Online (Sandbox Code Playgroud)

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

Flo*_*sch 12

for(( i = 0; i<=5; i++))是 Bash 特定的,不适用于普通的 Bourne shell ( /bin/sh)。

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

更换#!/bin/sh#!/bin/bash使家当工作。

  • `i=0; 而 [ $i -le 5 ]; 做回声 $i; i=$((i+1)); 完成` (2认同)