文档章节

shell编程总结11(重定向)

心中的理想乡
 心中的理想乡
发布于 2017/02/25 21:31
字数 926
阅读 6
收藏 0
点赞 0
评论 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


 

© 著作权归作者所有

共有 人打赏支持
心中的理想乡
粉丝 8
博文 68
码字总数 61989
作品 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
shell编程入门

shell编程入门:linux命令行、重定向、管道;shell变量、shell条件判断、shell流程控制、shell函数 1.linux命令行、重定向、管道 http://my.oschina.net/shw23/blog/688280 2.shell基础 http...

shw23
2016/06/08
56
0
命令历史、别名、通配符

1.shell Shell脚本与Windows/Dos下的批处理相似,也就是用各类命令预先放入到一个文件中,方便一次性执行的一个程序文件,主要是方便管理员进行设置或者管理用的。但是它比Windows下的批处理...

LavenDer7n
2017/11/26
0
0
Linux3.18,3.19课程内容总结

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

付博元
06/29
0
0
Linux自学笔记——bash的基础特性

Bash的基础特性(1) 1.命令历史history 环境变量; HISTSIZE:命令历史记录的条数; HISTFILE:~/.bash_history HISTFILESIZE;命令历史文件记录历史的条数; 调用上一条命令的最后一个参数...

claude_liu
2017/09/19
0
0
unix shell编程摘记系列(一)

一、基本命令回顾 date //显示日期和时间 who //查看登录系统的所有用户 echo //显示输入的内容 文件操作类 ls //列出文件清单 cat //显示文件内容 wc //统计文件中的单词数 cp //复制文件 ...

kafein
2015/02/28
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Linux 技巧:让进程在后台可靠运行的几种方法

WeiboGoogle+用电子邮件发送本页面 12 我们经常会碰到这样的问题,用 telnet/ssh 登录了远程的 Linux 服务器,运行了一些耗时较长的任务, 结果却由于网络的不稳定导致任务中途失败。如何让命...

mskk
5分钟前
0
0
手把手教你利用Nextcloud搭建个人网盘/私有云盘

越来越多的云盘宣布关闭,百度网盘也时不时8秒和谐视频,分享也会提示侵权被和谐。为了解决这些问题,我们可以搭建一个自己的个人网盘(私有云盘),常用的开源框架包括ownCloud,Seafile,N...

flyzy2005
9分钟前
0
0
Confluence 6 配置时间和日期格式

你可以修改你 Confluence 为用户显示的时期和时间格式。设置的句法使用的是 SimpleDateFormat class,请参考 Java SimpleDateFormat 文档中的内容来设置日期和时间格式。 有下面 3 个时间和日...

honeymose
12分钟前
0
0
php seralize unserialize

关于PHP 序列化(serialize)和反序列化(unserialize)出现错误(Error at offset)的解决办法。 首先我们分析一下为什么会出现这个错误: 编码问题 UTF-8: ANSI: 我发现在我的机器上边编码改...

yeahlife
19分钟前
0
0
七、JSP九大内置对象和四个作用域

九大内置对象: request:类型是HttpServletRequest,和Servlet里的HttpServletRequest一模一样。 response:类型是HttpServletResponse,和Servlet里的HttpServletResponse一模一样。JSP里基...

Wakeeee_
22分钟前
0
0
第十四章NFS服务搭建与配置

14.1 NFS介绍 NFS介绍 NFS是Network File System的缩写;这个文件系统是基于网路层面,通过网络层面实现数据同步 NFS最早由Sun公司开发,分2,3,4三个版本,2和3由Sun起草开发,4.0开始Netap...

Linux学习笔记
54分钟前
0
0
双向认证-nginx

1、设置容器 docker run -it --name nginx-test2 -v /home/nginx:/apps -v /home/nginx/conf/nginx.conf:/etc/nginx/nginx.conf:ro -p 8183:80 -p 7443:443 -d nginx:stable 2、修改nginx配......

hotsmile
55分钟前
0
0
深入了解 Java 自动内存管理机制及性能优化

一图带你看完本文 一、运行时数据区域 首先来看看Java虚拟机所管理的内存包括哪些区域,就像我们要了解一个房子,我们得先知道这个房子大体构造。根据《Java虚拟机规范(Java SE 7 版)》的规...

Java大蜗牛
57分钟前
4
0
SpringBoot | 第六章:常用注解介绍及简单使用

前言 之前几个章节,大部分都是算介绍springboot的一些外围配置,比如日志 配置等。这章节开始,开始总结一些关于springboot的综合开发的知识点。由于SpringBoot本身是基于Spring和SpringMvc...

oKong
57分钟前
12
0
云数据库架构演进与实践

如今,大型企业如金融企业和银行等,在下一代的微服务架构转型要求下,需要基础软件和数据平台能够实现原生的云化,以满足微服务架构的需求。 微服务,也就是一种面向服务的,有特定边界的松...

巨杉数据库
58分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部