现在的位置: 首页 > 综合 > 正文

bash上shell编程的诡异语法

2018年06月08日 ⁄ 综合 ⁄ 共 996字 ⁄ 字号 评论关闭

     偶尔休息时间到linux上面去联系shell编程,好久不碰,差点就忘记了shell语法的诡异,在一个if语句里被卡了N久后,借助搜索才找到问题的答案。

     一些shell上的诡异语法就如下所示:

    以下内容转载自:http://hi.baidu.com/zdl1016/blog/item/4d7625238ae57348925807bd.html

    一个脚本语言, 语法这么苛刻, 让人抓狂.

    举例如下:

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 等都是这样引起的.

5if 后面一定要跟上 then.。同理elif 后面一定要跟上 then.
不然提示出错信息:
syntax error near unexpected token else

抱歉!评论已关闭.