linux shell 呈现数据

  • 输入输出

在显示器上显示

重定向到文件中

标准文件描述符

0 STDIN 标准输入

1 STDOUT 标准输出

2 STDERR 标准错误  重定向错误消息时需要制定文件描述符    ls -al badfile 2> test11111

ls -al test test123  2> test11 1> test88  讲错误消息重定向到test11  正常的消息重定向到test88

&> 会把STDERR和STDOUT输出重定向到同一个输出文件,默认会把STDERR放在最前面,方便排错

  • 在脚本中重定向输出

临时重定向每行输出

正常运行该脚本两行都显示,因为正常情况下 STDERR和STDOUT都是输出到显示器上的,但是使用输出重定向后就会看出差别,如下所示:

永久重定向脚本中的所有命令

 exec命令可以在脚本中永久重定向,如下

exec 1> testout   标准输出重定向

exec 2> testerror 标准错误重定向

exec 必须先定义才能处理接下来的输出

  • 在脚本中重定向输入

exec 0< testfile

  • 创建自己的重定向

创建输出文件描述符

exec 3>test13out

echo "tttt" >&3

把该行输出到test13out

重定向文件描述符

exec 3>&1  将文件描述符3重定向到文件描述符1的位置

exec 1>testout 将STDOUT重定向到文件

exec 1>&3 恢复

创建输入文件描述符

把标准输入先保存到描述符6,然后把标准输入指定某个文件,完成后,恢复标准输入

创建读写文件描述符

同事读取和写入同一个文件

<>

关闭文件描述符

shell脚本退出时会自动关闭创建的文件描述符

在脚本中需要提前关闭时,需要手动关闭  exec 3>&- 

列出打开的文件描述符  lsof命令

阻止命令输出,可以吧输出重定向到  /dev/null这个空文件里面

创建临时文件 /tmp 目录默认是存放临时文件的,可以使用mktemp创建唯一的临时文件

mktemp testing.XXXXXX  一定是6个X 这6个X会生产随机数

mktemp -t test.XXXXXX 会在 /temp 目录下创建一个临时文件

mktemp -d test.XXXXXX 创建临时目录

  • 记录消息

tee命令相当于一个T型管道,发给两个目的地,一个目的地是STDOUT,拎一个是tee命令行所指定的文件名,默认是覆盖,如果想要追加的话,需要-a选项

如图所示

原文地址:https://www.cnblogs.com/laiyuan/p/7219297.html