shell中的for循环出现语法错误(syntax error: bad for loop variable)

Posted

tags:

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

出现这种错误是因为有些linux系统默认会使用ash进行编译shell脚本,我的机器就是这样,但是我写的脚本是应该用bash执行的。虽然我在开头注明了#!/bin/bash,好像它还是默认去找了ash,真是让人无奈。上网搜索了一下,找到两种解决方案:1、修改脚本 2、修改系统默认执行shell的工具

第一种的具体做法就是,原来的for循环类似这种 for(( i=1; i<3; i++)),改成类似这种的:for  i in `seq 1000`,这是从一个网友的博客上抄来的,我不知道是否等价。但是看着后者满脸黑人问号,毕竟我是写的java多一些,所以根本不知道后者是什么意思。

第二种的具体做法是:执行一条命令 sudo dpkg-reconfigure dash,执行这条命令后就会出现很吓人的页面,全屏底色变成红色,一个提示框。大意就是我们系统默认选择dash是为了提高系统的性能和启动速度(好像有吧),选择dash作为默认的执行shell工具吗?(坑)我们选择NO选项就可以了。我没有敢选,因为不知道选了之后会有什么幺蛾子。

但是写完了这篇,我就准备去改了,因为我原文里的有好多的for循环,我还不知道怎么把他们改成bash执行的方式。

没事,如果你改了之后还想改回来,直接重新执行上面的命令,选择 YES就好了。easy

以上是关于shell中的for循环出现语法错误(syntax error: bad for loop variable)的主要内容,如果未能解决你的问题,请参考以下文章

linux 运行一个可执行文件,出现 line 1: syntax error: unexpected "(" 的错误

编写简单的shell脚本 - for循环 - 解决报错 Syntax error: Bad for loop variable

syntax error: Bad for loop variable 解决办法

linux shell脚本中for循环的语法

shell脚本启动语法错误syntax error near unexpected token '{

shell脚本在win下被修改后报错语法错误Syntax error: end of file unexpected (expecting "then")