注册 | 登录 忘记密码? 51cto首页 | 博客 | 论坛 | 招聘
热点文章 raymond关于番茄花园事件..
 帮助

小小空格,大意不得


2008-06-13 13:47:46
 标签:sql shell 空格   [推送到技术圈]

版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://yahoon.blog.51cto.com/13184/81705

在计算机业者里面,通常对空格不是很重视,因为在一般的程序语言里面,大都会有这么一个概念,一个空格与N个空格没啥区别,于是通常为了排版漂亮,方便阅读会人为的增减空格,也没有太在意.但是,千万千万,如果空格出现在了不该出现的地方,那也是相当头疼的.

这里举两个例子
在写shell脚本的时候,有时命令会相当长,这个时候我们通常会用反斜杠\来把命令续写到下一行.今天就碰到一个奇怪的事情,执行一个数据库备份的命令的时候,报错了
命令如下:

/usr/bin/mysqldump -h localhost --opt -u root -pxxx \  
 xyz_abc  \
--ignore-table=xyz_abc.a1  \
--ignore-table=xyz_abc.a1_ac_ne  \
--ignore-table=xyz_abc.a1_aptne  \
--ignore-table=xyz_abc.a1_gatys  \
--ignore-table=xyz_abc.a1_m_c  \
--ignore-table=xyz_abc.a1_rle \
--ignore-table=xyz_abc.a1_ts  \
--ignore-table=xyz_abc.td  \
--ignore-table=xyz_abc.tc  \
--ignore-table=xyz_abc.t1_mt  \
--ignore-table=xyz_abc.tc_mt  \
--ignore-table=xyz_abc.xd  \
--ignore-table=xyz_abc.xi  \
--ignore-table=xyz_abc.x_db  \
> /data_backup/xyz_abc.sql

写起来都很顺,复制到shell里面运行的时候报错了..
shell把它当做了两条命令来执行..找了半天才发现问题

每行\的后面必须立刻回车,不能有空格,否则shell就认为这个命令结束了.....
实在是难发现啊~


还有一次是执行一个创建数据库的命令,命令十分简单
CREATE DATABASE `test ` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
报错显示
ERROR 1102 (42000): Incorrect database name 'test '
这个十分明显,是test后面多了个空格...

这篇文章内容着实太基础了,旨在提醒读者与自己,对空格这个东东,咱还真不能马虎!

看完此文之后请您点击下面这篇文章并留言,在此先谢过.
http://yahoon.blog.51cto.com/13184/80162

本文出自 “yahoon的小屋” 博客,请务必保留此出处http://yahoon.blog.51cto.com/13184/81705





    文章评论
 <<   1   2   >>   页数 ( 1/2 )  
2008-06-13 13:52:10
哈哈。就知道密码后面加空格。是很让人吐血的

2008-06-13 13:58:53
没有沙发了,空空空空空空空空空,

2008-06-13 14:37:10
要不怎么说搞技术必须严谨细心呀,太多的灵异事件就是因为一个细微的疏忽造成的

2008-06-13 14:38:24
要不怎么说搞技术必须严谨细心呀,太多的灵异事件就是因为一个细微的疏忽造成的

2008-06-13 15:07:57
废总 是啥灵异事件咧??
很感兴趣哦

2008-06-13 15:20:33
我也尝过这样的苦果,搞的我晕头转向的!

2008-06-13 15:49:54
也遇到类似的事,下周如果“任务”完成了就整两篇!:)

2008-06-13 23:44:00
呵呵,遇上过,一定要细心!

2008-06-16 18:42:25
郁闷,我昨天装php,在编译的时候也是,多了一个空格,结果编译了几十分钟的文件,完了

2008-06-17 09:44:13
看了这个错误常常有人犯

 <<   1   2   >>   页数 ( 1/2 )  

发表评论

昵   称:
验证码:  点击图片可刷新验证码  博客过2级,无需填写验证码
内   容: