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. Ajax中参数带有html格式的 传入后台保存【一】

    因业务需求  要讲如下编辑器中带有样式的数据传入数据库保存 第一种方法  json格式传入 $(".privilegezn_page .btn_ok").click(functio ...

  2. javascript的insertBefore、insertAfter和appendChild简单介绍

      target.insertBefore(newChild,existingChild)参数说明:1.target:被添加节点和现有节点的父节点.2.newChild:将要被插入的节点.3.exis ...

  3. WiMAX协议栈

    1.协议栈模型 协议栈模型将 WiMAX 系统分为数据控制平面和管理平面两个平面 数据控制平面对数据的正确传输进行保证,包括封装.分片.加密.解封装等 基站与用户站之间的特定信令交互完成系统的控制功能 ...

  4. HDU 2102 A计划(DFS)

    题目链接 Problem Description 可怜的公主在一次次被魔王掳走一次次被骑士们救回来之后,而今,不幸的她再一次面临生命的考验.魔王已经发出消息说将在T时刻吃掉公主,因为他听信谣言说吃公主 ...

  5. Gentoo挂载ntfs的NTFS分区

    内核需要开启的选项 File systems ---> <*> FUSE (Filesystem in Userspace) support 使用NTFS-3G NTFS-3G是一个 ...

  6. Openjudge-计算概论(A)-找和为K的两个元素

    描述: 在一个长度为n(n < 1000)的整数序列中,判断是否存在某两个元素之和为k. 输入第一行输入序列的长度n和k,用空格分开.第二行输入序列中的n个整数,用空格分开.输出如果存在某两个元 ...

  7. Windows Text Copyer 1.1绿色版

    软件名称: Windows Text Copyer软件语言: 简体中文授权方式: 免费软件运行环境: Win 32位/64位软件大小: 269KB图片预览: 软件简介:有些网站限制复制,你可以用这个软 ...

  8. Find and run the whalesay image

    Find and run the whalesay image People all over the world create Docker images. You can find these i ...

  9. 鼠标滚动事件 - onmousewheel

    1.Jquery-MouseWheel jquery默认是不支持支持鼠标滚轮事件(mousewheel) jquery MouseWheel下载:https://github.com/jquery/j ...

  10. Thrift源码解析--transport

    这一层主要是用于实现网络通信,现在都是基于Tcp/Ip,而Tcp/Ip协议栈由socket来实现,换句话说就是现在网络通信服务底层大都是通过socket实现的,在thrift源码中,就是将socket ...