Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2145972
  • 博文数量: 333
  • 博客积分: 10161
  • 博客等级: 上将
  • 技术积分: 5238
  • 用 户 组: 普通用户
  • 注册时间: 2008-02-19 08:59
文章分类

全部博文(333)

文章存档

2017年(10)

2014年(2)

2013年(57)

2012年(64)

2011年(76)

2010年(84)

2009年(3)

2008年(37)

分类: LINUX

2010-11-26 10:00:47

我的代码

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

在redhat测试无问题,在Ubuntu下测试报错

for: 2: Syntax error: Bad for loop variable

解决:

sudo dpkg-reconfigure dash

在选择项中选No

从 ubuntu 6.10 开始,ubuntu 就将先前默认的bash shell 更换成了dash shell;其表现为 /bin/sh 链接倒了/bin/dash而不是传统的/bin/bash。

ubuntu edgy是第一个将dash作为默认shell来发行的版本,这似乎是受了debian的影响。wiki 里面有官方的解释,,主要原因是dash更小,运行更快,还与POSIX兼容。

但目前存在的问题是,由于shell的更换,致使很多脚本出错,毕竟现在的很多脚本不是100%POSIX兼容。

在wiki里面也说到,如何将默认的shell改回bash,方法就是

在终端执行 sudo dpkg-reconfigure dash

然后选择 no
阅读(1756) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~