`

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就要用空格分开
空格是命令解析中的重要分隔符
分享到:
评论

相关推荐

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

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

    shell编程学习笔记

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

    shell时间详细介绍

    注意以上中间有空格 时间域 % H 小时(00..23) % I 小时(01..12) % k 小时(0..23) % l 小时(1..12) % M 分(00..59) % p 显示出AM或PM % r 时间(hh:mm:ss AM或PM),12小时 % s 从1970年1月1日...

    Linux服务器配置与管理:Linux字符界面shell使用.pptx

    其中命令名、选项、参数之间使用空格隔开,多余的空格将被忽略,而用方括号括起来的部分表明该项是可省略的,如直接在提示符后面输入命令date,显示当前的日期和时间。下面介绍命令各组成部分的含义和作用。 (1)命令名...

    基于shell的if和else详解

    基本语法 shell的if语法和C语言等高级语言非常相似,唯一需要注意的地方...有else和elif时也一样,需要注意空格的问题,下面这个例子可以作为参考 if [ $1x == abx ]; then echo you had enter ab elif [ $1x == cdx

    Shell脚本定义变量和重新赋值

    注意,变量名和等号之间不能有空格,这可能和你熟悉的所有编程语言都不一样。同时,变量名的命名须遵循如下规则: •首个字符必须为字母(a-z,A-Z)。 •中间不能有空格,可以使用下划线(_)。 •不能使用标点符号...

    UNIX Handbook

    34.set 使用注意点: 77 35.判断对端节点的文件是否存在: 77 36.awk的split函数的使用: 77 37.统计字符串在文件中出现的次数: 77 38.如何进行精确匹配: 81">命令格式 9 一.shell与Unix平台 9 二.shell基本知识...

    linux命令(shell编程)1

    单引号(’)的作用:$xx ‘$xx’输出的是$xx ,“$xx”输出的是对应的值同$xx在shell脚本中,要注意空格的使用例子: A=1 B=2 Expr

    LINUX/UNIX Shell编程大作业

     在主Shell脚本文件里(必须以 menu 命名)要有一个多操作选项的菜单以便用户从中选择。在不同任务的中,这些操作能自动实现以下功能: 在屏幕上显示当前所有用户的记录 在屏幕上显示当前所有用户(经过格式化和...

    hs8145v_hs8546v_shell_sp.bin

    华为光猫补全shell工具,适用于hs8145v和hs8546v,需要断开光纤,使用华为ONT 配置工具刷入,重启后生效。 注意,输入法先设为英文模式,再输密码,避免混入空格字符而报错。

    Shell脚本中引用、调用另一个脚本文件的2种方法

    在Shell中要如何调用别的shell脚本,或别的脚本中的变量,函数呢? 方法一: . ./subscript.sh  方法二: source ./subscript.sh 注意: 1.两个点之间,有空格,千万注意. 2.两个脚本不在同一目录,要用绝对路径 3.为...

    shell学习笔记

    shell的学习笔记: 一、注意事项 命令和参数之间必需用空格隔开,参数和参数之间也必需用空格隔开。 一行不能超过256个字符;大小写有区分。 ......

    DOS命令_Net_use__Shell_编程实例集锦

    net use重要用法小结 ...net use[\\192.168.1.63\ipc$["vv" /user:lyhong (注意[代表空格) net use z: \\IP\c$ "密码" /user:"帐号" 将对方的c盘映射为自己的z盘 net use \\IP\ipc$ /del 删除与指定IP的IPC$连接 ...

    比较两个字符串是否相等的shell代码

    then 这里的关键有几点: 1 使用单个等号 2 注意到等号两边各有一个空格:这是unix shell的要求 3 注意到”$test”x最后的x,这是特意安排的,因为当$test为空的时候,上面的表达式就变成了x = testx,显然是不相等...

    Linux 第四篇 shell编程,逻辑控制

    在此之前,先提两个shell变量的注意点: ①变量赋值时,“=”左右两边不能有空格; ②BASH中的语句结尾不需要分号;   分支控制,基本结构: ① if[expression] then  #code block fi   ② if[expression] then  ...

    xxdzyyh#book#shell入门1

    shell 入门变量定义变量注意,变量名和等号之间不能有空格除了显式地直接赋值,还可以用语句给变量赋值使用变量使用一个定义过的变量,只要在变量名前面加美元符号即

    Shell常见用法小记

    shell的简单使用 最近发现shell脚本在平常工作中简直算一把瑞士军刀,很多场景下用shell脚本能实现...注意定义和赋值时=两边均不能有空格,且变量名前不能加$! 变量使用: echo $var_test1 或 echo ${var_test1} 或

    PowerShell命令中包含空格如何运行?

    但是请注意,这里的<程序文件名>其实是指的一个路径,可以是相对的,也可以是绝对的。当我们使用绝对路径的时候,会遇到路径中带空格的情况,像上面那种去执行它,就会报错了。 那么,如何运行带空格的命令呢? ...

    java实现批量改文件夹、文件名的shell

    使用注意事项: 该程序默认的工作路径是c:\盘,建议在windows环境下利用这则小程序,linux下未测试。 这个简单的java shell拥有以下几个命令: cd 进入要工作的目录 ls 列出该工作目录下的文件和文件夹 re 对工作...

Global site tag (gtag.js) - Google Analytics