脚本执行方式和Bash基本功能(3)

3 输入输出重定向
标准输入输出
设备 设备文件名 文件描述符 类型
键盘 /dev/stdin 0 标准输入
显示器 /dev/stdout 1 标准输出
显示器 /dev/stderr 2 标准错误输出

输出重定向
类型 符号 作用
标准输出重定向 命令 > 文件 以覆盖的方式把命令的正确输出输出到指定文件或设备中
命令 >> 文件 以追加的方式把命令的正确输出输出到指定文件或设备中
举个例子 ls > abc 把ls的输出结果保存到abc这个文件中

Linux下GCC编译过程及静态链接库和动态链接库


date >> abc 把date的输出结果追加到abc这个文件中

Linux下GCC编译过程及静态链接库和动态链接库

标准错误输出重定向 错误命令 2> 文件 以覆盖的方式把命令的错误输出输出到指定文件或设备中
错误命令 2>> 文件 以追加的方式把命令的错误输出输出到指定文件或设备中
lsd 2> bcd
lsd 2>> bcd

Linux下GCC编译过程及静态链接库和动态链接库


在实际使用中,上面两张形式用的比较少,因为我要是都知道这个命令是错的了,还打印输出到文件干嘛,直接改了就行了,所以实际应用中,下面的情况用的比较多

正确输出和错误输出同时保存
命令 > 文件 2>&1 以覆盖的方式把命令的正确输出和错误输出同时保存到文件中

Linux下GCC编译过程及静态链接库和动态链接库


也就是输出重定向到文件中的时候,不管命令正确还是错误输出都保存
命令 >> 文件 2>&1 以追加的方式把命令的正确输出和错误输出同时保存到文件中

Linux下GCC编译过程及静态链接库和动态链接库

命令 &> 文件 等同于命令 > 文件 2>&1
命令 &>> 文件 等同于命令 >> 文件 2>&1

Linux下GCC编译过程及静态链接库和动态链接库

命令 >>文件1 2>>文件2 把正确的输出追加到文件1中,把错误的输出追加到文件2中

输入重定向
命令 < 文件 把文件作为命令的输入
我们先说下wc命令
这个命令的意思是统计字节数,单词数,行数
-c 统计字节数 -w 统计单词数 -l统计行数 什么都不加就都统计
wc命令执行后,随便输入,以Ctrl+Shift +D结束

Linux下GCC编译过程及静态链接库和动态链接库


3行,4个单词,17个字节
我们可以用wc < abc来统计abc文件中的行数,单词数,字节数

命令<<标示符
。。。
标示符
把标示符之间内容作为输入

Linux下GCC编译过程及静态链接库和动态链接库

4 多命令顺序执行与管道符
命令1;命令2 多个命令顺序执行,命令之间没有任何逻辑关系

Linux下GCC编译过程及静态链接库和动态链接库

命令1&&命令2 逻辑与 当命令1正确执行,命令2才会执行
当命令1执行不正确,命令2不会执行

Linux下GCC编译过程及静态链接库和动态链接库

命令1 || 命令2 逻辑或 当命令1执行不正确,命令2才会执行
当命令1执行正确,命令2不会执行

来看一个经常用到的例子
命令&& echo yes || echo no 这样就可以判断命令是否正确执行

Linux下GCC编译过程及静态链接库和动态链接库

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/6eb9c67aa2fc875a501e6e409912607c.html