ubuntu运行某些脚本错误Syntax error: "(" unexpected

jared009 2012-07-13 09:28:15
想弄一个遍历目录树并转换其中文件格式的脚本,在网上找了这个
#!/bin/bash
function ergodic(){
for file in ` ls $1 `
do
if [ -d $1"/"$file ]
then
ergodic $1"/"$file
else
local path=$1"/"$file #得到文件的完整的目录
local name=$file #得到文件的名字
#做自己的工作.
fi
done
}
INIT_PATH="/home"
ergodic $INIT_PATH

在我的ubuntu12上跑返回了Syntax error: "(" unexpected。
在网上找了一下发现是ubuntu使用dash解释,但尝试了其给出的解决办法:sudo dpkg-reconfigure dash,正常应该弹出一个提示问是否要把dash作为默认shell,然后选否即可。但我运行了之后没有任何提示弹出,ls -l /bin/sh显示的仍然是dash:lrwxrwxrwx 1 root root 4 Mar 30 02:53 /bin/sh -> dash

现在束手无策了,求解~
...全文
1039 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
jared009 2012-07-13
  • 打赏
  • 举报
回复
/etc/passwd里面显示我在用的用户已经是/bin/bash了,但跑那个程序还是出现报错。其他系统如rh就正常。

找了个替代方法,运行脚本时输入bash convert.sh 就可以执行没有报错。如果是sh.convert.sh就报错。至少可以继续做事了。

[Quote=引用 1 楼 的回复:]
没装bash? 先装一下bash
改默认shell的话去/etc/passwd文件,把用户的shell改成/bin/bash
[/Quote]
nevil 2012-07-13
  • 打赏
  • 举报
回复
没装bash? 先装一下bash
改默认shell的话去/etc/passwd文件,把用户的shell改成/bin/bash

23,120

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧