LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1371|回复: 11

帮助看个shell,怎么总是提示错误呀?

[复制链接]
发表于 2008-9-25 12:02:24 | 显示全部楼层 |阅读模式
  1. #!/bin/sh
  2. case $1 in
  3. -help)
  4. cat <<EOF
  5. test cat help
  6. EOF
  7. exit 0
  8. ;;
  9. *)
  10. cat <<EOF
  11. test *
  12. EOF
  13. ;;
  14. esac
复制代码
 楼主| 发表于 2008-9-25 12:03:36 | 显示全部楼层
已运行就提示错误:
syntax error:unexpected end of file
回复 支持 反对

使用道具 举报

发表于 2008-9-25 12:21:05 | 显示全部楼层
好像看到了中文的标点符号. 另外, 请确保用 unix 格式保存文件, 比如可以利用 dos2unix 工具做一下转换

最重要的是, 不知道楼主代码的原始缩进是怎样的, 作为结束的 EOF 是必须要顶行首的
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-9-25 14:19:53 | 显示全部楼层
在原shell脚本中是行首的。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-9-25 14:21:42 | 显示全部楼层
没有中文的标点符号,我确定
回复 支持 反对

使用道具 举报

发表于 2008-9-25 14:44:48 | 显示全部楼层
把脚本内容用 [ CODE ] [ /CODE ] 括起来发, 括号中的空格要去掉
回复 支持 反对

使用道具 举报

发表于 2008-9-26 09:40:02 | 显示全部楼层
#!/bin/sh
这个"!"是全角字符
半角的"!"
回复 支持 反对

使用道具 举报

发表于 2008-9-26 11:01:39 | 显示全部楼层
呵呵,就是!惹的祸
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-9-26 12:01:28 | 显示全部楼层
这个!是我发帖敲错的,实际脚本是对的。我屏蔽掉case,相关语句,单独执行,没问题的
回复 支持 反对

使用道具 举报

发表于 2008-9-26 13:15:44 | 显示全部楼层
问题应该出在EOF 上面,用echo "`command`"可以正常执行,其中command是你case里的语句,"`" 是"1"旁边的~号。
不知还可以怎么修改。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表