`
xitong
  • 浏览: 6206877 次
文章分类
社区版块
存档分类
最新评论

shell 编程中空格的使用–< 转>

 
阅读更多

fromhttp://blog.csdn.net/panda19881/article/details/6626727


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

6. 命令和其后的参数或对象之间一定要有空格

if [ -x"~/Workspace/shell/a.sh" ];then

只有 -x 后有空格才表示紧跟其后的字符串是否指向一个可执行的文件名,否则就成了测试 -x"~/Workspace/shell/a.sh" 这个字符串是不是空。

7.取变量值的符号'$'和后边的变量或括号不能有空格

分享到:
评论

相关推荐

    Linux Shell编程3/3

    Linux Shell编程经典著作:&lt;br&gt;第一部分SHELL&lt;br&gt;|_文件安全与权限&lt;br&gt;|_使用find和xargs&lt;br&gt;|_后台执行命令&lt;br&gt;|_文件名置换&lt;br&gt;|_shell输入与输出&lt;br&gt;|_命令执行顺序&lt;br&gt;第二部分文本过滤&lt;br&gt;|_正则表达式介绍&lt;br&gt;...

    Linux Shell编程1/3

    Linux Shell编程经典著作:&lt;br&gt;第一部分SHELL&lt;br&gt;|_文件安全与权限&lt;br&gt;|_使用find和xargs&lt;br&gt;|_后台执行命令&lt;br&gt;|_文件名置换&lt;br&gt;|_shell输入与输出&lt;br&gt;|_命令执行顺序&lt;br&gt;第二部分文本过滤&lt;br&gt;|_正则表达式介绍&lt;br&gt;...

    Linux Shell编程2/3

    Linux Shell编程经典著作:&lt;br&gt;第一部分SHELL&lt;br&gt;|_文件安全与权限&lt;br&gt;|_使用find和xargs&lt;br&gt;|_后台执行命令&lt;br&gt;|_文件名置换&lt;br&gt;|_shell输入与输出&lt;br&gt;|_命令执行顺序&lt;br&gt;第二部分文本过滤&lt;br&gt;|_正则表达式介绍&lt;br&gt;...

    LINUX与UNIX SHELL编程指南

    &lt;br&gt;目 录&lt;br&gt;译者序&lt;br&gt;前言&lt;br&gt;第一部分 shell&lt;br&gt;第1章 文件安全与权限 1&lt;br&gt;1.1 文件 1&lt;br&gt;1.2 文件类型 2&lt;br&gt;1.3 权限 2&lt;br&gt;1.4 改变权限位 4&lt;br&gt;1.4.1 符号模式 4&lt;br&gt;1.4.2 chmod命令举例 5&lt;br&gt;1.4.3 绝对...

    【原创】【源代码】myshell:操作系统编程-自己用C语言写的Linux下的Shell

    The shell environment should contain shell=&lt;pathname&gt;/myshell where &lt;pathname&gt;/myshell is the full path for the shell executable (not a hardwired path back to your directory, but the one from which it...

    shell命令精品教程

    &lt;br /&gt;基础s h e l l编程&lt;br /&gt;16、shell脚本介绍&lt;br /&gt;17、条件测试&lt;br /&gt;18、控制流结构&lt;br /&gt;19、shell 函数&lt;br /&gt;20、向脚本传递参数&lt;br /&gt;21、创建屏幕输出&lt;br /&gt;22、创建屏幕输入&lt;br /&gt;23、调试脚本&lt;br /&gt;24、...

    ADBShell操作手册

    adb shell cp [options] &lt;source&gt; &lt;dest&gt; 16 adb shell mv [options] &lt;source&gt; &lt;dest&gt; 16 网络命令(NetWork) 17 adb shell netstat 17 adb shell ping 17 adb shell netcfg 18 adb shell ip [OPTIONS] OBJECT 18 ...

    shell基础十二篇

    shell基础1:文件安全与权限 2&lt;br&gt;shell基础2:查找技巧,find及xargs的使用 25&lt;br&gt;shell基础3和4:后台(crontab,at,&,nohup)及(*,?,[]等)shell基础5:输入/输出(echo,read,cat,管道,tee,重定向等)shell基础8:文本...

    SOPC系统设计入门教程

    系统软件开发&lt;br&gt;4.1 软件开发流程&lt;br&gt;4.2 软件开发环境&lt;br&gt;4.3 文件系统&lt;br&gt;4.4 软件开发工具&lt;br&gt;4.4.1 GNUPro工具&lt;br&gt;4.4.2 Nios OCI调试模块&lt;br&gt;4.4.3 Nios OCI调试控制台&lt;br&gt;4.4.4 Nios SDK Shell...

    用Win32API Shell_NotifyIcon进行托盘图标编程-源代码

    &lt;br&gt;&lt;br&gt;// 得到Shell32的版本号,并依此设置结构成员cbSize的大小 - 注意:MSDN文档中关于这部分的说明有点模糊不清(见本文后面),所以我并不确定下面的代码是否完全正确&lt;br&gt;&lt;br&gt; ULONGLONG ullVersion =&lt;br&gt; ...

    LInux 下101个超酷Shell脚本

    The Missing Code Library &lt;br&gt; Chapter 2 - Improving on User Commands &lt;br&gt; Chapter 3 - Creating Utilities &lt;br&gt; Chapter 4 -...Chapter 11 - Mac OS X Scripts &lt;br&gt; Chapter 12 - Shell Script Fun and Games &lt;br&gt;

    Linux_slides.rar

    Shell Basics&lt;br&gt;Module 7 — Shell Advanced Features&lt;br&gt;Module 8 — File Name Generation&lt;br&gt;Module 9— Quoting&lt;br&gt;Module 10 — Input and Output Redirection&lt;br&gt;Module 11 — Pipes&lt;br&gt;Module 12 — Using ...

    shell编程和unix命令<2>

    在掌握一些最基本的linux命令后,如果想进一步linux命令或为以后能读懂内核makefile,请关注它,希望对你有用

    Visual C++ 编程资源大全(英文源码 其它)

    1,01.zip&lt;br&gt;Output&lt;br&gt;显示所有的调试信息(5KB)&lt;END&gt;&lt;br&gt;2,02.zip&lt;br&gt;Some general debugging tips&lt;br&gt;一般的调试技巧(11KB)&lt;END&gt;&lt;br&gt;3,03.zip&lt;br&gt;Debugging ISAPI extension&lt;br&gt;调试ISAPI扩展(4KB)&lt;END&gt;&lt;br&gt;4,04....

    UNIX 快速查询手册

    UNIX 快速查询手册&lt;br&gt;1.... SHELL编程 10&lt;br&gt;10. 其它 16&lt;br&gt;11. 正则表达式 18&lt;br&gt;12. 常用命令 18&lt;br&gt;13. awk介绍 21&lt;br&gt;14. sed介绍 25&lt;br&gt;15. tr介绍 27&lt;br&gt;16. Vi的三种工作状态 28&lt;br&gt;17. MAKE介绍 31&lt;br&gt;&lt;br&gt;

    Perl DBI编程(chm)

    Interacting with the Database &lt;br&gt;Chapter 6: Advanced DBI &lt;br&gt;Chapter 7: ODBC and the DBI &lt;br&gt;Chapter 8: DBI Shell and Database Proxying &lt;br&gt;Appendix A: DBI Specification &lt;br&gt;Appendix B: Driver and ...

    101 shell script for linux and unix

    Wicked Cool Shell Scripts: 101 Scripts for Linux, Mac OS X, and Unix Systems&lt;br&gt;&lt;br&gt;This cookbook of useful, customizable, and fun scripts gives you the tools to solve common Linux, Mac OS X and UNIX ...

    Linux shell 编程

    实验任务一:&lt;br&gt;编写一个Shell过程完成如下功能(必须在脚本中使用函数):&lt;br&gt;1、合并两个$1、$2文件为$3,并显示。&lt;br&gt;2、如果缺少$3,那么先报告缺少$3,然后将合并后的内容输出到mydoc.txt。如果有$3,就合并到...

    Vxworks 培训综合材料

    工程.pdf&lt;br&gt;3.Shell和Browser.pdf&lt;br&gt;4.CrossWind Debugger的使用.pdf&lt;br&gt;5.实时多任务.pdf&lt;br&gt;6.WindView工具.pdf&lt;br&gt;7.信号量编写.pdf&lt;br&gt;8.任务间通信.pdf&lt;br&gt;9.内存管理.pdf&lt;br&gt;10.异常、中断和时钟.pdf&lt;br&gt;11....

    shell命令解释器.doc

    可供参考的linux解释器源码,包含了简单命令,复合命令,以及后台执行命令的相关实现

Global site tag (gtag.js) - Google Analytics