Shell重定向文件描述符

#!/bin/bash 

最近在看shell,各种困惑,不过解决困惑的感觉还是很不错的。废话少说,linux中使用文件描述符来标识每个文件对象。文件描述符为一个非负整数,可以唯一标识会话中打开的文件。每个过程最多可以有9个文件描述符。

linux使用的标准文件描述符:

标准输入STDIN就是0,标准输出STDOUT就是1,标准错误输出STDERR就是2。而我们也可以自己创建文件描述符3~8。

将今天看到的一段代码:

1    #!/bin/bash

2    exec  3>&1

3    exec  1>test

4    echo "something to output file"

     ....

     ....

5    exec 1>&3

6    echo "Now things should be back"

第二行代码使用文件描述符3指向文件描述符1的位置,即标准输出的位置,用于保存标准文件描述符1的位置。之后第三行代码将文件描述符1重定向到文件test,之后再执行后面的代码。在执行到第5行代码时将文件描述符1又重新指向其原来位置。

这种方法就是在脚本程序中临时将输出重定向然后再将输出恢复到通常设置的方法~还是会经常用到的,呼呼~。

还是那句话:Where there is a shell,there is a way!

#exit 0

时间: 2024-10-07 06:30:33

Shell重定向文件描述符的相关文章

Shell的文件描述符操作,包括标准输入,标准输出,自定义文件描述符

Abstract: 1) Linux Shell 命令的标准输入.标准输出.标准错误,及其重定位: 2)Linux Shell 操作自定义文件描述符: 文件描述符是与文件相关联的一些整数,他们保持与已打开文件的关联.众所周知的文件描述符是标准输入stdin.标准输出stdout.标准错误stderr,我们可以重定位这些文件描述符关联文件的内容到另外一个文件文件描述符. 1. Linux Shell 命令的标准输入.标准输出.标准错误 当我们在编写 shell 脚本时,我们会非常频繁地操作执行命令

18 shell 重定向以及文件描述符

1.对重定向的理解 2.硬件设备和文件描述符 文件描述符到底是什么 3.Linux Shell 输出重定向 4.Linux Shell 输入重定向 5.结合Linux文件描述符谈重定向 6.Shell 对文件描述符的操作 7.改变当前shell环境的重定向目标 8.示例 1.对重定向的理解 Linux Shell 重定向分为两种,一种输入重定向,一种是输出重定向:从字面上理解,输入输出重定向就是「改变输入与输出的方向」的意思. 输入方向就是数据从哪里流向程序.标准输入方向是指数据从键盘流向程序,

shell 重定向以及文件描述符

1.对重定向的理解 Linux Shell 重定向分为两种,一种输入重定向,一种是输出重定向:从字面上理解,输入输出重定向就是「改变输入与输出的方向」的意思. 输入方向就是数据从哪里流向程序.标准输入方向是指数据从键盘流向程序,如果改变了它的方向,数据就从其它地方流入,这就是输入重定向. 输出方向就是数据从程序流向哪里.标准输出方向是指数据从程序流向显示器,如果改变了它的方向,数据就流向其它地方,这就是输出重定向. 2.硬件设备和文件描述符 计算机的硬件设备有很多,常见的输入设备有键盘.鼠标.麦

Linux环境编程之文件I/O(一):文件描述符

(一) 首先,对于内核来讲,它是利用"文件描述符"来访问文件的.文件描述符一般是一个非负的整数.当我们用open打开已有的文件或者用creat创建新的文件时,都会返回一个文件描述符.有了文件描述符之后,我们就可以利用该文件描述进行文件的读写,即read.write系统调用都需要文件描述符fd(file descriptor)作为其参数.从以上描述可以看出,当我们想要用read.write等系统调用对文件进行读写等操作之前,必须用open或creat系统调用得到文件的描述符. 一般Uni

shell文件描述符及重定向

文件描述符是与文件输入.输出相关联的整数.它用来跟踪已经打开的文件.最常见的文件描述符是stdin.stdout.stderr.我们甚至可以将某个文件描述的内容重定向到另一个文件描述符中.文件描述符0,1,2是系统预留的: 0----stdin(标准输入) 1----stdout(标准输出) 2----stderr(标准错误) 实例 (一).将输出的文本重定向到一个文件中: [[email protected] shell]# echo "this is a example test"

shell 重定向与文件描述符

[解释] 重定向: 是动作,一种操作的action行为 文件描述符: 名词,文件的另一种表示,linux一切皆文件. [基础重定向形式] < 输入重定向 用途星级: ** << here-document  输入重定向 用途星级: *** > 输出重定向 用途星级: ***** >> 追加 用途星级: ***** 一.< 用法: cat 作为代表 cat功能:Concatenate FILE(s), or standard input, to standard o

Shell命令(2)——文件描述符和重定向符

文件描述符 stdin:标准输入,接收鼠标.键盘或其他输入设备的输入信息,文件描述符是1 stduot:输出所有的正常输出结果,文件描述符是2 stderr:输出所有错误信息,文件描述符是3 重定向符 “>":使用方法,“command > file",进程接受标准输入后,该重定向符使得标准输出改变方向,不输出到屏幕,而是输出到一个文件.标准错误输出依然不变,默认输出到屏幕或相应的设备.另外,若文件已存在,则原有内容就会被擦除.例如: ”>>" :与上

SHELL脚本学习总结--文件描述符和重定向

文件描述符是与文件输入和输出的相关联的整数,它们用来追踪已打开的文件,文件描述符0,1,2是系统预留的. 0 --> stdin (标准输入) 1 --> stdout (标准输出) 2 --> stderr (标准错误) $ echo a1>a1 $ cp a1 a2;cp a2 a3 $ cat a* cat: a1: Permission denied a1 a1 将0定向到std.txt,将2定向到err.txt $ cat a* >std.txt 2>err.

IO重定向与文件描述符

1.介绍 IO重定向用于捕捉一个文件,命令,程序,脚本或者代码块的输出,然后把捕捉到的输出作为输入发送给另外一个文件,命令,程序或脚本. 终端程序一般从单一源以流的形式聚集输入和显示输出,script执行时(进程), 系统会默认开启3个标准文件,stdin, stdout,stderr . script默认会由stdin读取数据,默认指键盘,由stdout输出执行结果,默认指屏幕; 若有错误发生,则由stderr显示信息,默认也指向屏幕.系统开启这3个文件时,以文件代码(分别为0,1,2)作为连