`

shell要注意空格

阅读更多
syntax error near unexpected token else
原链接:http://blog.sina.com.cn/s/blog_7774a1fe01018m68.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 等都是这样引起的.

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 编程中空格的使用方法

    ### Shell编程中空格的使用方法 在Shell脚本编程中,空格的正确使用对于构建功能完整且无误的脚本至关重要。错误地处理空格可能会导致语法错误或者脚本无法按照预期运行。本文将详细介绍Shell编程中空格使用的几个...

    Shell中处理包含空格的文件名实例

    ### Shell中处理包含空格的文件名实例 在日常的Shell脚本开发过程中,经常会遇到文件名中包含空格的情况。这种情况下,如果处理不当,可能会导致脚本无法正确识别文件名,从而引发一系列的问题。本文将通过一个具体...

    shell script编程学习笔记

    ### Shell Script 编程学习笔记 #### 一、Shell 脚本初窥 ##### 示例: ```bash #!/bin/sh # 第1行:指定脚本解释器(声明使用的shell名称),这里是用/bin/sh做解释器的。“#!”是一个约定的标记 cd ~ # 第2行:...

    传带空格的命令行参数

    需要注意的是,Linux 和 macOS 支持单引号和双引号,但它们的处理方式略有不同: 1. **使用双引号**:双引号内的内容会被解释器解析,即其中的变量和命令会被替换。 2. **使用单引号**:单引号内的内容被视为一个...

    Shell中去除字符串里的空格或指定字符的方法

    在Shell中,如果要删除字符串开头的空格或制表符,可以使用`sed`命令。例如: ```bash text=" 123 456 " text=`echo $text | sed -e 's/^[ \t]*//g'` ``` 上述代码中的`sed`命令通过正则表达式`^[ \t]*`匹配...

    Linux的shell脚本

    以上语句将 2 + 2 的值给变量 注意其中的空格,必须要有 3. 使用变量 使用一个定义过的变量,只要在变量名前面加美元符号即可,如:echo $name echo ${name} 变量名外面的花括号是可选的,加不加都行。加花括号...

    Shell 编程:Bash空格的那点事

    在Shell编程,特别是Bash环境下,空格的...等号赋值时两侧不应有空格,命令与选项之间通常需要空格,而在使用`[`进行条件测试时,需注意空格的放置。掌握这些基本规则,能够帮助你编写更稳定、更易于理解的Bash脚本。

    shell与python文档

    Shell支持一维数组,数组下标从0开始,使用圆括号定义数组,并通过空格分隔各个元素。例如: ```shell array_name=(value0 value1 value2 value3) ``` 或者 ```shell array_name[0]=value0 array_name[1]=value1 ```...

    包含了几乎所有 unix shell script编程特性的 unix shell script 完整项目, 基于 IBM AIX,附注释.rar

    一直很喜欢写unix shell script, 因为写那么一点点东西...(4) 注意怎样才能给一个数组赋值-用空格分隔的一串数据赋予一个数组 其他的flow control ( if , for, case等),没有什么太需要注意的,可用本例子 直接作参考.

    js使用wscript.shell打开文件-可以用于iis

    首先,让我们探讨如何使用`WScript.Shell`来处理路径中包含空格的文件。在DOS命令行中,如果文件路径有空格,需要将整个路径用双引号括起来,以确保命令行解释器正确解析路径。例如,如果你想打开名为"我的文档\带有...

    AIX-SHELL基本编程

    在定义环境变量时,需要注意三个重要问题:第一,在等号 (=) 的两边不能有空格,否则将导致错误。第二个要注意的事是,当定义的环境变量值多于一个字时,引号是必须的。第三,虽然通常可以用双引号来替代单引号,但...

    shell编程 创建shell脚本 shell 基础语法 shell流程控制语法 shell函数

    在编写 Shell 脚本时,注意遵循良好的命名规范,避免使用特殊字符和空格,并确保变量名不以数字开头。此外,内部命令执行速度较快,因为它们是 Shell 的一部分,而外部命令则需要从磁盘加载。在需要提高效率时,可以...

    shell编程中级实例

    注意,中括号前后应有空格,等号两侧也需空格。`then`可以直接跟在`if`同一行,但需要分号`;`结束,如果换行则不需要分号。 2. **case分支语句**: `case`语句常用于多条件判断。在Shell中,没有专门的函数来判断...

    Linux下shell脚本中if语句使用的注意事项

    Linux下shell脚本中if语句使用的注意事项 在 Linux 中,shell 脚本中的 if 语句是非常重要的控制结构之一。正确地使用 if 语句可以使得我们的脚本更加灵活和强大。但是,如果不注意一些细节,if 语句可能会出错或不...

    shell变量,具体的

    - 注意:等号两边不允许有空格。 2. **使用双引号或单引号赋值**: - `name="proinsight"` # 正确方法 - `name='proinsight'` # 正确方法 根据变量值中是否包含空格等特殊字符,选择不同的赋值方式: - 如果变量...

    LinuxShell编程全攻略

    注意,变量赋值时等号两边不能有空格,如果变量值中包含空格,则需要用双引号括起来。为了代码的可读性,推荐使用大写字母定义变量名。如果需要将变量设置为只读属性,可以使用`readonly`命令。另外,如果想要让变量...

    递归替换.c和.h文件中TAB键为4个空格的shell脚本,执行非常方便

    递归替换.c和.h文件中TAB键为4个空格的shell脚本,如果需要扩展,可以修改一下shell脚本,加上对应的类型,比如cpp或hpp。操作步骤非常简单: 将压缩包在linux下解压,把replaceTAB.sh上传到需要操作的目录,注意...

    shell编程基本语法

    需要注意的是,在定义变量时,等号两边不允许出现空格,并且变量值如果包含空格需要使用双引号包裹。 - **只读变量**: 可以使用`readonly 变量名`命令将变量设置为只读状态。 - **导出变量**: 使用`export`命令可以...

    Linux shell 用sed命令在文本的行尾或行首添加字符

    Linux shell 用sed命令在文本的行尾或行首添加字符 sed 命令是 Linux shell 中的一个流编辑器,可以用来对文本进行各种处理操作,例如,添加、删除、替换文本中的字符。今天我们将讨论如何使用 sed 命令在文本的行...

    shell编程学习笔记

    例如想要取得核心版本的配置:『version=$(uname -r)』再『echo $version』可得『2.6.18-128.el5』" "7.若该变量为扩增变量内容时,则可用 ""$变量名称"" 或 ${变量} 累加内容,如下所示: 『PATH=...

Global site tag (gtag.js) - Google Analytics