分类: LINUX
2009-05-31 15:48:50
学了那么多语言,没见过这么垃圾的语法.
这就是linux下的脚本语言--bash.
一个脚本语言, 语法这么苛刻, 让人抓狂.
举例如下:
1:
定义变量时, =号的两边不可以留空格.
eg:
gender=femal------------right
gender =femal-----------wrong
gender= femal-----------wrong
2
条件测试语句 [ 符号的两边都要留空格.
eg:
if [ $gender = femal ]; then-------right.
echo "you are femal";
fi
if[ $gender...-----------------------wrong
if [$gender...----------------------wrong.
3
条件测试的内容,如果是字符串比较的话, 比较符号两边要留空格!
eg:
if [ $gender = femal ]; then-------right.
if [ $gender= femal ]; then--------wrong.
if [ $gender=femal ]; then---------wrong.
4
如果if 和 then写在同一行, 那么,注意, then的前面要跟上 ; 号.
如果 then 换行写, 那么也没问题.
eg:
if [ $gender = femal ]; then-------right.
if [ $gender = femal ]
then-------------------------------right.
if [ $gender = femal ] then-------wrong. then前面少了 ; 号.
提示出错信息:
syntax error near unexpected token then
同理,还有很多出错信息 比如
syntax error near unexpected token fi 等都是这样引起的.
5
if 后面一定要跟上 then. 同理
elif 后面一定要跟上 then.
不然提示出错信息:
syntax error near unexpected token else
明明从书上抄下来的程序,死活执行不过去, 气死人了. 更气人的时, 净没有一本书提示 [ 符号的两边要留空格. 呜呼哀哉.以上是我的总结,希望对bash入门的哥们有用.
chinaunix网友2009-06-05 21:02:22
条件测试语句 [ 符号的两边都要留空格. eg: if [ $gender = femal ]; then-------right. echo "you are femal"; fi lz你以为if [ $gender = femal ]; 这是判断么,这是赋值好不好
chinaunix网友2009-06-04 13:55:07
好服月租型IT服务台,与你共成长! 月租型ITSM软件,注册即可免费体验! 详情请登录官方网站:http://www.servicezon.com
chinaunix网友2009-06-02 18:26:45
条件测试语句 [ 符号的两边都要留空格. eg: if [ $gender = femal ]; then-------right. echo "you are femal"; fi 那是因为 [ 是一个程序:/bin/[ 就是/bin/test 后边的东西是作为一个参数 ---------- 啊刚看到楼上的已经帖过了。呵呵,就写到这里吧 --lbaby