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 换行写, 那么也没问题.(bash:==,dash =)

  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

  1)if 语句后面需要跟着then,同时前面要有分号;
  2) 空格非常重要,shell 会认为空格前的为一个命令,如果a=3 认为是赋值操作,如果写成a = 3,那么就会认为a为一个命令 this=`ls -l |grep '^-' | wc -l `
  3) 操作符之间要用空格分开 ,如 test ! -d $1,其中的!和-d就要用空格分开
  空格是命令解析中的重要分隔符

shell 空格问题的更多相关文章

  1. 坑爹的shell 空格

    shell 空格很敏感,被线上代码坑了,占个位,回头好好整理一下

  2. ISCC的 Web——WP

    比赛已经结束了,自己做出来的题也不是很多,跟大家分享一下 第一题:比较数字大小 打开连接 在里面随意输入一个值,他会提示数字太小了 那么我们输入他允许的最大值试试 他还是提示太小了 我们知道做web‘ ...

  3. Jenkins-自动部署,备份

    Jenkins-自动部署,备份 问题导入: 环境: CentOS 7,   Tomcat 8.5,   Jdk 1.8,   Maven 3.25 ,Jenkins war包 2.x 原因: 每次部署 ...

  4. Shell中的空格和引号

    空格对于linux的shell是一种很典型的分隔符,所以给变量赋值的时候中间不能够有空格.而单引号和双引号,都是为了解决中间有空格的问题.比如string1=this is a string,这样执行 ...

  5. shell替换一个或多个空格为逗号

    (1)把文本中的一个或者多个空格替换为逗号 文本内容如下: # cat text 1 2 4 2 2 3 4 3 3 4 4 4 4 2 4 (2)shell程序代码为: # cat text | s ...

  6. shell脚本 空格

    1.定义变量时, =号的两边不可以留空格. eg: gender=femal----right gender =femal---–wrong gender= femal---–wrong 2.条件测试 ...

  7. shell变量赋值 不能有空格的原因

    典型例子: a=date echo $a      成立 a =date echo $a     不成立 其实原因很简单 shell在解释命令时的原则是第一个符号标记只能是程序或者命令,有空格的时候第 ...

  8. shell实现trim函数-去除字符串两侧的空格(包括tab,space键)

    shell实现trim函数效果去除字符串两侧的空格,以下三个命令等价,都能实现 sed 's/^\s*//' totrim.txt |sed 's/\s*$//'>trimed.txtsed ' ...

  9. shell/bash 让vi/vim显示空格,及tab字符

    shell/bash 让vi/vim显示空格,及tab字符 Vim 可以用高亮显示空格和TAB.文件中有 TAB 键的时候,你是看不见的.要把它显示出来::set listTAB 键显示为 ^I,   ...

随机推荐

  1. mysql解决中文乱码问题

    安装文件 my.ini default-character-set=gbk 安装文件 db.opt default-character-set=gbkdefault-collation=gbk_chi ...

  2. 从0开始学习blockchain

    http://www.8btc.com/build-your-own-blockchain

  3. C++ : 从栈和堆来理解C#中的值类型和引用类型

    C++中并没有值类型和引用类型之说,标准变量或者自定义对象的存取默认是没有区别的.但如果深入地来看,就要了解C++中,管理数据的两大内存区域:栈和堆. 栈(stack)是类似于一个先进后出的抽屉.它的 ...

  4. POJ1410 Intersection 计算几何

    题目大意:给出一个线段的两端,和矩形两端(不一定是左上和右下),问线段是否与矩形相交(若线段在矩形内也算相交).这题蒸鹅心-- 题目思路:判断所有情况:线段是否在矩形内,线段内一点是否在矩形内,线段是 ...

  5. 分析函数 over用法 之row_number() runk_number

    分析函数用于计算基于组的某种聚合值,每个组返回多个行,而聚合函数每个组只返回一个行 表: create table TB_SCORE ( id NUMBER(10), class VARCHAR2(1 ...

  6. 学习笔记——解释器模式Interpreter

    解释器模式,其实就是编译原理中的语法解释器,如果用在项目中,可以用于实现动态脚本的解析,也就是说项目可以支持用户脚本扩展. 但实际上,这种运行时解释,效率很慢,如果不是很需要的话,不建议使用. 一种简 ...

  7. webapp 微信开发适配问题

    文章摘自:http://www.cnblogs.com/oksite/p/4630462.html 前段时间由于公司要做微信app 前端主要有我一个人独立开发 分享一下自己独立开发微信app的一些经验 ...

  8. php file取重复

    function FetchRepeatMemberInArray($array) { // 获取去掉重复数据的数组 $unique_arr = array_unique ( $array ); // ...

  9. Process 'command '/usr/lib/jvm/jdk1.8.0_25/bin/java'' finished with non-zero exit value 2

    这个问题有两种可能,第一是jar包或者依赖冲突(版本冲突也算).第二是65535. 对于65535的问题,请看http://blog.csdn.net/t12x3456/article/details ...

  10. 网页特效-动态加载JavaScript

    描述: 把一些逻辑独立的JavaScript脚本文件单独加载,是一种常见的JavaScript动态加载技术.可以减少不必要的JavaScript脚本文件的加载,以提高网页浏览速度 代码: <!D ...