很少自己写Bash脚本,一写就出现了一些奇怪的问题,主要还是对Bash脚本的语法不够熟悉,毕竟很少使用。

当做记录一下吧,今天因为空格导致的一些脚本问题:

1、Bash脚本中的赋值符号“=”前后不能有空格。例如给变量number赋值要写成“number=1”,不能写成“number = 1”。大多数编程语言都会忽略掉一些没有意义的空格,例如对于Java语言上面两种写法在语法上都是正确,但是Bash脚本不会。

2、Bash脚本中的“["和"];"中括号是个语法标识符,前后一定要留空格。例如:if [ "$number" -el 1 ]" then... 如果前后没有空格就会导致语法错误,提示”期待一元表达式“或者缺少一部分中括号之类的一些语法错误。

另外还有很多Bash常见的语法陷阱,以下两篇博文总结的挺好,别人辛辛苦苦写的文章我就不抄过来了,感兴趣的童鞋请移步:

1、Bash的陷阱:http://blog.charlee.li/bash-pitfalls/

2、Bash空格的那些事:http://www.igigo.net/post/archives/152

Bash脚本的空格和“期待一元表达式”错误相关推荐

  1. bash脚本编程之for循环

    bash脚本编程: shell: 交互式接口:编程环境:能够提供一些内部命令,并且能通过PATH环境变量找到外部命令:把命令提交给内核启动为进程:默认字符型: 条件测试:$? 命令的状态结果 真( 0 ...

  2. 检查传递给Bash脚本的参数数量

    本文翻译自:Check number of arguments passed to a Bash script I would like my Bash script to print an erro ...

  3. 防止删库悲剧发生,这里有个Bash脚本测试框架,危险代码一测便知

    萧箫 发自 凹非寺  量子位 报道 | 公众号 QbitAI 想要清理文件夹内部分冗余文件,结果误删了同事刚合的代码? (例如,在rm -rf /usr/bin/test的/usr后面加了个空格,结果 ...

  4. Linux基础之bash脚本进阶篇-循环语句(for,while,until)

    20160909 补充break与continue的区别 什么是循环语句.死循环? 循环语句:将一段代码重复执行0.1或多次. 到底要重复运行多少次?以及我们如何设定循环语句的重复次数? 为了解决上面 ...

  5. linux删除文件退出,在Linux中用于在移动或删除文件时使`tail -f`退出的bash脚本

    目前删除,移动或重命名在其上运行tail -f的文件什么都不做,我希望它能够中止.我已经阅读了手册页,似乎-f应该在文件移动时中止,-F将跟随文件,但在Mac OS X上似乎-f和-F是相同的.如何编 ...

  6. 正则表达式及bash脚本(一)

    目录 1 基本正则表达式元字符 1.1 字符匹配 1.2 匹配次数 1.3 位置锚定 1.4 分组其它 1.4.1 分组 1.4.2 或者 2 扩展正则表达式元字符 2.1 字符匹配 2.2 次数匹配 ...

  7. 生产力工具:shell 与 Bash 脚本

    生产力工具:shell 与 Bash 脚本 作者:吴甜甜 个人博客网站: wutiantian.github.io 微信公众号: 吴甜甜的博客 注意:本文只是我个人总结的学习笔记,不适合0基础人士观看 ...

  8. 一个很不错的bash脚本编写教程

    一个很不错的bash脚本编写教程 建立一个脚本 Linux中有好多中不同的shell,但是通常我们使用bash (bourne again shell) 进行shell编程,因为bash是免费的并且很 ...

  9. 初学者编写bash脚本教程

    初学者编写bash脚本教程 bash shell script 定义 bash bash是命令语言解释器.广泛用于各种gun/unix系统上的默认命令解释器.全程叫做"Bourne-Agai ...

最新文章

  1. rfid商品管理软件_哪个RFID固定资产管理系统比较好用?
  2. NTFS的交换数据流ADS应用
  3. 安卓13来了!首个开发者版公布,三方图标随壁纸变色,电量管理系统也安排上了...
  4. Asp.net 性能监控之压测接口“卡住” 分析
  5. 007_Maven依赖管理
  6. FLV提取AAC音频单独播放并实现可视化的频谱
  7. Django13-ModelForm中的is_valid及局部钩子、全局钩子源码解析
  8. UncaughtExceptionHandler:java未捕获的异常/错误默认处理方式
  9. 从Xbox和Zune中学到的四门创业课
  10. LeetCode 2138. 将字符串拆分为若干长度为 k 的组
  11. 蓝桥杯 入门训练 Fibonacci数列
  12. 基于RV1126平台imx291分析 --- 写在开始
  13. DTW算法——Matlab实现
  14. Mac桌面动态壁纸Dynamic Wallpaper for Mac
  15. ZIP和RAR文件的不同
  16. [CDOJ 5] Diligent Boys Don’t Love [动态规划]
  17. java最早的游戏_回忆S60(塞班)年代的JAVA游戏
  18. 2020Web应用防火墙 (WAF)榜单TOP30
  19. wow达拉然发礼物机器人_达拉然彩蛋:会把玩家变羊的NPC,并赠送礼物
  20. Excel服务器实现多用户协作

热门文章

  1. unity3d 切换网络_【Unity3D入门教程】网络通信
  2. 如何选择分度带(中央子午线)
  3. pgdac和unidac插入效率究竟差多少?
  4. 他们是这样描述美女的,球星皮耶罗的绯闻女友该如何描述?
  5. 查看并修改MySQL允许最大传输数据
  6. 什么是A类、B类、C类地址?
  7. 数字IC手撕代码-握手信号(READY-VALID)
  8. ES6中的let是存在hoisting(提升)的
  9. 剑指offer----C语言版----第三天
  10. flask之搭建web服务