文档章节

shell编程总结11(重定向)

心中的理想乡
 心中的理想乡
发布于 2017/02/25 21:31
字数 926
阅读 6
收藏 0

这一章主要说的是重定向的相关内容。

1、Linux下保留的标准的文件描述符:
0    STDIN    标准输入
1    STDOUT    标准输出
2    STDERR    标准错误

2、标准输入:
    使用:cat < testfile
    说明:主要使用<这个符号来进行重定向标准的输入

3、标准输出:
    使用:ls > test2
          who >> test2
    说明:一个>符号表示标准输出重定向到一个文件,两个>>表示重定向标准输出,追加到一个文件的后面

4、标准错误
    使用:ls -al basdfile 2> test4
    说明:文件描述符的数字要仅仅的贴着>这个符号,否则不会起作用,默认情况下,标准错误的输出会重定向到标准输出的上面
    拓展:同时使用重定向标准输出与标准错误:
            ls -al test test2 test3 badtest 2> test6 1> test7
          如果要同时重定向标准输出与标准错误,可以使用&>:
              ls -al test test2 test3 badtest &> test7

5、在脚本中重定向输出:主要分成临时重定向与永久重定向
    (1)临时重定向
            单独一行输出重定向方法:echo "This is an error message" >$2
            说明:注意要在>与文件描述符数字之间输入一个$
    (2)永久重定向
            在脚本中永久重定向方法:使用exec命令
                exec 1>testout
                exec 2>testout1
            说明:标准输出与标准错误输出在脚本中重定向之后,下面的所有输出将会被存放到重定向的地方。另外,一旦重定向之后,就很难变回原来的文职了,但是也是有方法(在下面)
6、输出重定向:与上面类似的使用exec命令
    #!/bin/bash
    exec 0< testfile
    count=1
    while read line
    do
        echo "Line #$count: $line"
        count=$[ $count+1 ]
    done
    说明:只要脚本中有要从标准输入的地方读取数据的(键盘),就会从重定向的地方获取

7、创建自己的重定向:shell脚本中一共有九个文件描述符,0、1、2是输入、输出、错误,其他3~9的我们都可以使用
    恢复文件描述符原先位置的方法:先将一个没用的描述符重定向给目标描述符,最后再把目标描述符重定向回来
    举例:
        #!/bin/bash
        exec 3>&1
        exec 1>test14out
        echo "Thiesdaasd"

        exec 1>&3
    说明:就入上面,输出输入错误输入都可以这样
8、可以同时将输入输出都重定向到同一个文件:
    exec 3<>testfile
9、关闭文件描述符:
    exec 3>&-

10、阻止输出:使用一个null文件/dev/null
    ls -al > /dev/null
    说明:这样的话就可以将ls的标准输出都吞掉了
    另外:我们可以使用这个特殊的文件,进行文件内容清空的工作:
        cat /dev/null > testfile


11、创建临时文件到/temp的系统目录:
        mktemp testing.XXXXXX
    说明:mktemp命令创建的文件不是用umask进行权限分配,直接将读写权限都给属主,其他用户都无法访问(除root用户外),另外系统会保证六个X的地方是唯一的字符,而且这个命令的正确执行返回,直接就是文件的名字,这样有利于在shell脚本中使用
    另外:如果想在/temp目录进行创建的话,直接使用-t参数
12、创建临时目录:
        mktemp -d dir.XXXXXX

13、tee命令:在管道中使用,类似于一个T型接头,将输出一面输出到标准输出一面输出到指定的文件
    举例:
        data | tee testfile
    使用追加文件:
        data | tee -a testfile


 

© 著作权归作者所有

共有 人打赏支持
心中的理想乡
粉丝 19
博文 75
码字总数 101203
作品 0
深圳
程序员
私信 提问
Linux Shell 数据重定向(输入重定向与输出重定向)

在了解重定向之前,我们先来看看linux 的文件描述符。 linux文件描述符:可以理解为linux跟踪打开文件,而分配的一个数字,这个数字有点类似c语言操作文件时候的句柄,通过句柄就可以实现文件...

Foundation
2015/09/29
36
0
linux shell数据重定向(输入重定向与输出重定向)详细分析

导读小文:【http://www.ibm.com/developerworks/cn/linux/l-iotips/】 技巧:Linux I/O重定向的一些小技巧 简介: Linux I/O 重定向虽然很简单,但在脚本编写、系统管理时却要常常打交道,搞...

无明时空
2013/03/06
0
0
教会你Linux Shell自动交互的三种方法

你了解Linux系统么?你是Linux系统的应用者么?如果你要学习linux,你可能会遇到Linux Shell自动交互问题,这里将介绍Linux Shell自动交互的解决方法,在这里拿出来和大家分享一下。 一、背景...

魏邪乎
2014/02/13
0
0
Linux3.18,3.19课程内容总结

上次课程内容回顾: Touch:修改时间戳,可创建文件; Nano文本编辑的工作; Cat,tac:显示文件内容; Head,tail:文件开始或结束的内容; More,less:全屏查看,但是是分屏显示; Cp,m...

付博元
06/29
0
0
shell编程(bash shell)

一.特殊符合 1 | 管道符号 2 >重定向 3 >>重定向 4 2>重定向错误输出 5 >/dev/null 2>&1 6 *匹配任意字符 ?一个字符 7 转义字符 3*5 8 ; 命令分隔符 9. “”把内容作为普通字符输出 有几个...

gehailong
2010/01/19
0
0

没有更多内容

加载失败,请刷新页面

加载更多

js前端图片处理例子

首先需要了解几个api FileReader FileReader主要用于将文件内容读入内存,通过一系列异步接口,可以在主线程中访问本地文件。 <table> <tr> <th>方法定义</th> <th>描述</th> </tr> <tr> <t......

别人说我名字很长
19分钟前
1
0
前端常用插件、工具类库汇总(下)

前言 对本文感兴趣可以先加个收藏,也可以转发分享给身边的小伙伴,以后遇到类似的场景就来看看具体的插件及其用法。 上一篇《前端常用插件、工具类库汇总(上)》内容摘要: 动画库 滚动库 ...

我的卡
25分钟前
3
0
jq 的 $ 符号冲突解决办法

百度了一下,都是 感觉挺负责的,我只是想当前页面 简单使用jq ,解决冲突即可。 很简单的 将 $ 符号换成 jQuery 即可,就不怕冲突了。 jQuery('#message').val();...

之渊
27分钟前
1
0
如何在Cordova Android 7.0.0 以下版本集成最新插件 极光插件为例

前提 Cordova Android 7.0.0开始改变了项目安卓平台的架构。新建一个空项目分别添加Android 6.4.0 和 Android 7.0.0平台: cordova platform add android@6.4.0cordova platform add androi...

极光推送
35分钟前
1
0
移动端Appium自动化测试框架的优势

众所周知,现在市面上的移动端操作系统已被Android和IOS占领,其中Android的份额更是在80%以上。那么面对市面上林林总总的自动化测试框架和工具,为什么说Appium在自动化测试框架的统治级优势...

程序猿拿Q
49分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部