Shell 编程知识点集锦
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 编程知识点集锦相关推荐
- Linux知识点回顾之shell编程
Linux知识点回顾之shell编程 shell编程 1 基本介绍 1.1 Shell 脚本 1.2 Shell 环境 1.3 第一个shell编程 1.4 运行 Shell 脚本有两种方法: 1.5 ...
- shell编程面试必会30题
来源说明:<跟老男孩学Linux运维>Shell编程实战 说明:对于每个脚本,用shell编程的同时,我再用python实现,达到同时熟悉两种脚本语言的目的.由于初学python,有问题还 ...
- linux bash脚本编程知识点
bash变量类型: 环境变量 本地变量(局部变量) 位置变量 特殊变量 本地变量: set VARNAME=VALUE: 作用域为整个bash进程: 引用变量 $(varname) 局部变量: loc ...
- c语言static知识点,C语言知识点集锦
C语言知识点集锦 C语言作为一门非常适合编程入门的语言,打好基础的重要性不言而喻.下面整理了一些C语言知识点,希望对大家有所帮助! 知识点1:指针使用注意 Int *p只能指向int类型的数据 指针变 ...
- shell编程之特殊符号
SHELL编程之特殊符号 2016-06-06邹立巍Linux系统技术HELL编程之特殊符号 版权声明:本文章内容在非商业使用前提下可无需授权任意转载.发布.转载.发布请务必注明作者和其微博.微信公众 ...
- 零基础学习Shell编程
一:起因 (0)也许由于一时的冲动使得你开始关注并学习shell编程:亦许由于是"道听途说"shell的威力很大:亦许由于shell编程的魅力:亦许由于作为一个coder的偏好:亦 ...
- 超级详细的 shell编程知识讲解 —— 第二部分(全文3万多字,看完之后不想成为高手也难!)
文章目录 写在开头的话 shell 编程进阶 00. 正则表达式 0.1 概述 0.2 基础正则表达式 0.3 扩展正则表达式 01.字符截取和替换命令 1.1 `cut` 列提取命令 1.2 `aw ...
- 自学shell编程——第1讲(基础概念、变量、符号、字符串处理)
shell编程 1. 常见shell命令 ls cd more less pwd mkdir clear touch vim chmod grep cp ln mv man ps -ef 查看这些命令 ...
- Shell编程 大学生速通攻略(持续更新)
提示:本篇博客写的都是自己复习Shell时候所记录的一些笔记(还是比较篇概念的内容),所以可能内容不是很全面.或许也很杂,内容都是从基础一点点往后增加的. 文章目录 一些无关紧要的废话 一.初识she ...
最新文章
- argument--学习笔记
- html5 css登录注册实现,html5+css3实现一款注册表单实例
- Python之路(二)Python基础
- Heredoc和Nowdoc
- 1.JAVA反射萧静默
- 集合框架和泛型练习题(含代码)
- 【VC ++6.0】VC++6.0的安装
- 使用量产工具修复U盘教程
- (python初学者)利用python画简单几何图形
- 数字签名(Digital Signature)
- 小满 前端埋点SDK 带你 从0 开发 并且发布npm
- QNX Hypervisor —— 体系结构
- An Apple a day keeps the doctor away
- 干货 | DDD实战:基于洋葱模型的分层代码架构设计
- Linux 对命令起别名
- 产品经理 - 产品设计方法论业务落地部分_包括流程产品文档方法论需求设计方法论
- java+vue3实现生成、验证图形验证码,和手机短信验证码
- 宇宙精密调治的再思《基督教与科学》第二十三课
- [足式机器人]Part3机构运动微分几何学分析与综合Ch01-3 平面运动微分几何学——【读书笔记】
- Linux九阴真经之无影剑残卷7(进程管理)
热门文章
- 已潜伏17年!严重的“可蠕虫”系统漏洞影响所有Windows Server
- 【Kernel学习】基础篇——01一些标准宏定义和文件include关系
- 路径取值之含正则表达式的的取值方法
- SSM : 环境搭建
- 阿里Q2财报:阿里云势头猛进领跑全球
- Swift基础一(代码)
- 别以为真懂Openstack: 虚拟机创建的50个步骤和100个知识点(1)
- [note] Homebrew的介绍、安装方法与常用命令整理
- PAT 乙级 1022. D进制的A+B (20) Java版
- 【数据库】E-R图向关系模型转换的规则