文档章节

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


 

© 著作权归作者所有

共有 人打赏支持
心中的理想乡
粉丝 16
博文 73
码字总数 80276
作品 0
深圳
程序员
教会你Linux Shell自动交互的三种方法

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

魏邪乎
2014/02/13
0
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
bash脚本编程之——变量、变量类型

shell编程: 编译器,解释器 编程语言:机器语言、汇编语言、高级语言 静态语言:变异型语言 强类型(变量) 事先转换成可以执行格式 c、c++、JAVA、c# 动态语言:解释型语言,(on the fly)...

yegulang
2017/09/13
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

没有更多内容

加载失败,请刷新页面

加载更多

05-《深度拆解Java虚拟机》之JVM是如何执行方法调用的?(下)

一、问题引入 我们知道,设计模式大量使用了虚方法来实现多态。但是虚方法的性能效率并不高,所以作者就想在此基础上写篇文章,评估每一种设计模式因为虚方法调用而造成的性能开销,并且在文...

飞鱼说编程
26分钟前
1
0
nginx统一入口 多服务出口

nginx配置多ip和端口统一调用入口log_format中$upstream_addr 标识打印转发的url地址配置upstream和locationhttp {include mime.types;default_type application/octet-stream...

GoldenVein
28分钟前
1
0
阿里P9架构师谈:高并发网站的监控系统选型、比较、核心监控指标

在高并发分布式环境下,对于访问量大的业务、接口等,需要及时的监控网站的健康程度,防止网站出现访问缓慢,甚至在特殊情况出现应用服务器雪崩等场景,在高并发场景下网站无法正常访问的情况...

我是你大哥
30分钟前
1
0
华为HiAI 助力苏宁易购,让你尽享完美视觉购物体验!

还在感慨商品照片与实物存在差距,又要退货? 还在抱怨被忽视的图片小细节,影响了生活品质? 想要“买买买”, 又担心海量的商品图片耗光你的流量? 就在近期 搭载HiAI能力的苏宁易购新版上线...

华为终端开放实验室
31分钟前
1
0
聊聊redisson的RMap的computeIfAbsent操作

序 本文主要研究一下redisson的RMap的computeIfAbsent操作 实例 @Test public void testRMapComputeIfAbsent(){ Config config = new Config(); config.useSingleS......

go4it
44分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部