1.Shell 脚本加分号和不加分号的区别

Shell 脚本是按行分隔每一条 Shell 语句。如果每一条shell语句写在单独一行,此时可以加分号,也可以不加,没有什么区别。如果多条 Shell 写在同一行,那么此时需一定要用分号将不用语句分隔开来。

2.>/dev/null 2>&1 这句话的含义及使用的意义

/dev/null 代表空设备文件,类似于 Windows 的回收站。

>代表重定向到哪里,例如:echo "123" > /home/123.txt
1表示STDOUT标准输出,是标准输出文件描述符,默认对应屏幕。系统默认值是1,所以">/dev/null"等同于"1>/dev/null"。
2 表示STDERR标准错误,是标准错误文件描述符,默认对应屏幕。
& 表示等同于的意思,2>&1,表示2的输出重定向等同于1。

那么本文标题的语句:
1>/dev/null 首先表示标准输出重定向到空设备文件,也就是不输出任何信喜到终端,说白了就是不显示任何信息。
2>&1 接着,标准错误输出重定向等同于标准输出,因为之前标准输出已经重定向到了空设备文件,所以标准错误输出也重定向到空设备文件。

那么2>&1 >/dev/null>/dev/null 2>&1 的区别是什么呢?
command >/dev/null 2>&1 相当于

stdout="/dev/null"
stderr=$stdout

这时,stderr也等于"/dev/null"了

结果是标准输出和标准错误都指向了/dev/null, 也就是所有的输出都被我们丢弃。

command 2>&1 >/dev/null 相当于

stderr=$stdout #stderr指向了屏幕,因为stdout这时还是指向屏幕!
stdout="/dev/null" #stdout指向了/dev/null,但不会影响到 stderr的指向

结果是标准错误仍然被打印到屏幕上, 而标准输出被丢弃。

3.Shell 脚本的执行顺序

Shell 脚本是从上到下,按照顺序一条一条解析命令。如果当前命令没有返回则阻塞等待,直到当前命令执行完成后才继续执行下一条命令。

可以使用 & 把一个程序的执行放入后台,但是当脚本运行到最后是不会等待这个进程的返回结果的,所以会直接结束脚本运行,该进程也会成为一个孤儿。解决方法是在脚本最后放“wait”。

总结: Shell 脚本的执行就和手动一行一行打入一样;可以用 & 把它放到后台,这样就不需要等上一行命令结束就可以继续执行。


参考文献

Shell 编程知识点集锦相关推荐

  1. Linux知识点回顾之shell编程

    Linux知识点回顾之shell编程 shell编程 1 基本介绍 1.1 Shell 脚本 1.2 Shell 环境 1.3 第一个shell编程 1.4 运行 Shell 脚本有两种方法: 1.5 ...

  2. shell编程面试必会30题

    来源说明:<跟老男孩学Linux运维>Shell编程实战 说明:对于每个脚本,用shell编程的同时,我再用python实现,达到同时熟悉两种脚本语言的目的.由于初学python,有问题还 ...

  3. linux bash脚本编程知识点

    bash变量类型: 环境变量 本地变量(局部变量) 位置变量 特殊变量 本地变量: set VARNAME=VALUE: 作用域为整个bash进程: 引用变量 $(varname) 局部变量: loc ...

  4. c语言static知识点,C语言知识点集锦

    C语言知识点集锦 C语言作为一门非常适合编程入门的语言,打好基础的重要性不言而喻.下面整理了一些C语言知识点,希望对大家有所帮助! 知识点1:指针使用注意 Int *p只能指向int类型的数据 指针变 ...

  5. shell编程之特殊符号

    SHELL编程之特殊符号 2016-06-06邹立巍Linux系统技术HELL编程之特殊符号 版权声明:本文章内容在非商业使用前提下可无需授权任意转载.发布.转载.发布请务必注明作者和其微博.微信公众 ...

  6. 零基础学习Shell编程

    一:起因 (0)也许由于一时的冲动使得你开始关注并学习shell编程:亦许由于是"道听途说"shell的威力很大:亦许由于shell编程的魅力:亦许由于作为一个coder的偏好:亦 ...

  7. 超级详细的 shell编程知识讲解 —— 第二部分(全文3万多字,看完之后不想成为高手也难!)

    文章目录 写在开头的话 shell 编程进阶 00. 正则表达式 0.1 概述 0.2 基础正则表达式 0.3 扩展正则表达式 01.字符截取和替换命令 1.1 `cut` 列提取命令 1.2 `aw ...

  8. 自学shell编程——第1讲(基础概念、变量、符号、字符串处理)

    shell编程 1. 常见shell命令 ls cd more less pwd mkdir clear touch vim chmod grep cp ln mv man ps -ef 查看这些命令 ...

  9. Shell编程 大学生速通攻略(持续更新)

    提示:本篇博客写的都是自己复习Shell时候所记录的一些笔记(还是比较篇概念的内容),所以可能内容不是很全面.或许也很杂,内容都是从基础一点点往后增加的. 文章目录 一些无关紧要的废话 一.初识she ...

最新文章

  1. argument--学习笔记
  2. html5 css登录注册实现,html5+css3实现一款注册表单实例
  3. Python之路(二)Python基础
  4. Heredoc和Nowdoc
  5. 1.JAVA反射萧静默
  6. 集合框架和泛型练习题(含代码)
  7. 【VC ++6.0】VC++6.0的安装
  8. 使用量产工具修复U盘教程
  9. (python初学者)利用python画简单几何图形
  10. 数字签名(Digital Signature)
  11. 小满 前端埋点SDK 带你 从0 开发 并且发布npm
  12. QNX Hypervisor —— 体系结构
  13. An Apple a day keeps the doctor away
  14. 干货 | DDD实战:基于洋葱模型的分层代码架构设计
  15. Linux 对命令起别名
  16. 产品经理 - 产品设计方法论业务落地部分_包括流程产品文档方法论需求设计方法论
  17. java+vue3实现生成、验证图形验证码,和手机短信验证码
  18. 宇宙精密调治的再思《基督教与科学》第二十三课
  19. [足式机器人]Part3机构运动微分几何学分析与综合Ch01-3 平面运动微分几何学——【读书笔记】
  20. Linux九阴真经之无影剑残卷7(进程管理)

热门文章

  1. 已潜伏17年!严重的“可蠕虫”系统漏洞影响所有Windows Server
  2. 【Kernel学习】基础篇——01一些标准宏定义和文件include关系
  3. 路径取值之含正则表达式的的取值方法
  4. SSM : 环境搭建
  5. 阿里Q2财报:阿里云势头猛进领跑全球
  6. Swift基础一(代码)
  7. 别以为真懂Openstack: 虚拟机创建的50个步骤和100个知识点(1)
  8. [note] Homebrew的介绍、安装方法与常用命令整理
  9. PAT 乙级 1022. D进制的A+B (20) Java版
  10. 【数据库】E-R图向关系模型转换的规则