shell脚本中,不能随意添加空格,否则出错:

1,=等号两边必须无空格。否则出错。如i =$1和i= $1都是错的。但是在()内部不限制如for ((i= 1;i < 3;i= i+1))是正确的。

2,(())内外部括号之间无空格,( () )这样报错。但内部括号内不限制,随便如s=$(( $i+1 ))可以

3,[]是条件判断式,所以前后内部都必须空格。其内部元素之间必须有空格才能识别,否则一律报错,如“while [ $i -lt 6 ]”少一个空格都报错。总之,[]所在行每个独立元素前后都必须有空格(不是一起的就必须空格)。-gt,-lt,-ge,-le,-ne

另外,单引号是字符串限定符,将内部内容作为字符串。而双引号和{}是变量限定符,内部作为变量处理

例子:

#!/bin/bash
for ((i= 1;i < 3;i= i+1))
doecho $i;echo '$i';echo "$i";
donewhile [ $i -lt 6 ]
doi=$(( $i+1 ))echo $i
done
s=$(( $i+1 ))
echo $s

再如: bin=`dirname "$0"`  如果写成bin =`dirname "$0"`就报错

#!/usr/bin/bashsource /etc/profilebin=`dirname "$0"`
echo $bin
echo "$bin"
echo '$bin'
echo ${bin}
echo "${bin}"
#inputfile="/home/deve_test_user/liu/observer_report_20130915155111"
inputfile="$bin/observer_report_20130915155111"
echo $inputfile
echo ${inputfile}
echo "$inputfile"
echo "${inputfile}"输出:.
.
$bin
.
.
./observer_report_20130915155111
./observer_report_20130915155111
./observer_report_20130915155111
./observer_report_20130915155111

从例子中可以看出:

1.{}和“”对于变量没有影响。有没有一样

2.单引号''是变量成为字符串,echo '$bin'输出为$bin

shell 与 空格相关推荐

  1. shell 清楚空格_shell使用技巧:快速去除字符串中的空格

    本文信息本文由方法SEO顾问发表于2014-08-2716:19:50,共 653 字,转载请注明:shell使用技巧:快速去除字符串中的空格_[方法SEO顾问],如果我网站的文章对你有所帮助的话,来 ...

  2. shell 清楚空格_Cygwin系列(五):Shell命令行初体验

    ► 本文共5700余字,预计阅读时间15分钟,本文知乎链接:Cygwin系列(五):Shell命令行初体验,本文同步发布于微信公众号. 前一篇文章Cygwin系列(四):一步一步搭建Cygwin最小系 ...

  3. sed shell 替换空格_shell三剑客之sed!

    背景 sed(Stream Editor 流编辑器),作为三剑客的一份子,主要的功能有增删改查. 为什么称之为"流"编辑器呢? 大家知道:在Linux文件系统中,一切都可以作为文件 ...

  4. shell 编程空格注意事项

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

  5. shell 连续空格输出

    $ str="123334444444445555" $ p=$(echo  $str|sed 's/3/ /g') $ echo $p 12 4444444445555 $ ec ...

  6. Shell脚本参数值包含空格的处理

    例如输入值为:2018-06-2523:59:59,但是日期和时间有空格,由于shell中将空格作为默认分隔符,因此只能将2018-06-25传递给脚本中的参数,而23:59:59则作为之后的另一个参 ...

  7. linux shell 得到当前时间

    shell 实现获取当前时间,并进行格式转换的方法: 格式1 time1=$(date) echo $time1 输出结果:2018年 09月 30日 星期日 15:55:15 CST 格式2 #!b ...

  8. shell+mysql获取数据库名_shell操作mysql数据库

    一.安装启动mariadb yum install mariadb mariadb-server mariadb-libs -y systemctl start mariadb #导入数据 mysql ...

  9. [读书笔记]鸟哥的LINUX私房菜 十三章 shell scripts

    shell scripts语法 #!/bin/bash 规定使用bash语法解释scripts #Program: 表明程序开始 主程序部分 exit 0 表明程序结束 #用sh执行脚本会新开一个子进 ...

最新文章

  1. 如何将 CentOS迁移到 AlmaLinux?
  2. Vue封装一个简单轻量的上传文件组件
  3. 华为2288H V5服务器 RAID操作
  4. MySQL 数据类型的属性 约束 三大范式
  5. JPA/Hibernate实体类定义联合主键@IdClass注解的使用
  6. HTML5自定义播放器(简式)
  7. 苦苦发愁学习Python?七天掌握Python就在此时
  8. php物料编码生成器,物料编码生成器软件
  9. GDI+ 绘制曲线方法总结
  10. ArcMap 小知识(16):栅格计算器 raster calculator
  11. 《裸辞后,降薪找工作》
  12. 五四青年节。无奋斗,不青春!
  13. 自建CA给内部网站颁发SSL证书
  14. ubuntu 下最简单的歌词软件osdlyric (with banshee)
  15. 【Python】np.where()替换缺失值
  16. 【C语言】判断某年是否为闰年
  17. 抖音直播团队部门岗位KPI考核主播绩效制度
  18. 树莓派4 安装OPENCV3全过程(各种踩坑和报错)
  19. FixMatch文章解读+算法流程+核心代码详解
  20. 三维立体电影制作 技术原理

热门文章

  1. Angularjs实现下拉框自动匹配键值对对象技巧
  2. [Hadoop入门] - 1 Ubuntu系统 Hadoop介绍 MapReduce编程思想
  3. spring整合mongodb集群
  4. DISCUZ 使用 JQ做效果导致DIY失效的解决办法
  5. 3.4 实用的path变量
  6. Navicate Premium连接Oracle数据库报错
  7. apache poi合并单元格设置边框
  8. Google Code Jam 2015 Round 1A Mushroom Monster 水
  9. 正则表达式(http://tieba.baidu.com/p/882391125)
  10. 使用Template时 typename 关键字的用法