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

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

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

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

第二种的具体做法是:执行一条命令

sudo dpkg-reconfigure dash

选yes

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

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

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

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值