错误处理:Syntax error: Bad for loop variable

Posted UQI-LIUWJ

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了错误处理:Syntax error: Bad for loop variable相关的知识,希望对你有一定的参考价值。

1 错误描述

在linux中写了一个很简单的脚本

#!/bin/bash
for((i=1;i<24;i++));do
  echo $i;
done;

但是用sh 跑这个脚本的时候,会报错

2 错误分析

原因是目前的linux将先前默认的bash shell 更换成了dash shell。

其表现为 /bin/sh 链接到了/bin/dash而不是传统的/bin/bash。

所以在使用sh执行检测的时候实际使用的是dash,而dash不支持这种C语言格式的for循环写法。

3 解决方法

3.1  将默认shell更改为bash

bash支持C语言格式的for循环

在选择项中选No

sudo dpkg-reconfigure dash

3.2  直接使用bash检测

3.3   使用dash支持的for循环格式

为了确保shell脚本的可移植性,直接更改shell脚本,使用dash支持的for循环格式

以上是关于错误处理:Syntax error: Bad for loop variable的主要内容,如果未能解决你的问题,请参考以下文章

Linux执行sh脚本报错: Syntax error: Bad fd number

Linux执行sh脚本报错: Syntax error: Bad fd number

Linux执行sh脚本报错: Syntax error: Bad fd number

syntax error: Bad for loop variable 解决办法

linux shell scripts:Syntax error: Bad for loop variable

error C2041: illegal digit ‘9‘ for base ‘8‘ | error C2059: syntax error: ‘bad suffix on number‘