• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    shell常用重定向实例讲解

    每个打开的文件都会被分配一个文件描述符.stdin (键盘), stdout (屏幕), 和 stderr (错误消息输出到屏幕上)的文件描述符分别是0, 1, 和 2. 对于正在打开的额外文件, 保留了描述符3到9.

    文件描述符是文件系统为了跟踪这个打开的文件而分配给它的一个数字。

    下面以实例说明

    1,>的用法

    复制代码 代码如下:

    [zhangy@localhost ~]$ echo "11111" > 1.txt
    [zhangy@localhost ~]$ cat 1.txt
    11111
    [zhangy@localhost ~]$ echo "11111" 1> 1.txt    //这个用法和上面的用法是一样
    [zhangy@localhost ~]$ cat 1.txt
    11111
    [zhangy@localhost ~]$ echo "22222" >1.txt
    [zhangy@localhost ~]$ cat 1.txt
    22222

    这种用法我想大家都非常的熟悉,因为这是我经常会用到的。echo "11111" > 1.txt 时,>前面是有一个1的,是默认的。>重定向到文件时,会将文件清空,在写入。

    复制代码 代码如下:

    [zhangy@localhost ~]$ > 1.txt 
    [zhangy@localhost ~]$ :> 1.txt 

    上面的这个例子,可以把1.txt文件中的内容清空,其实也很好理解,清空后,不输入内容当然为空了。

    2,>>的用法

    复制代码 代码如下:

    [zhangy@localhost ~]$ echo "2222" >> 2.txt
    [zhangy@localhost ~]$ cat 2.txt
    2222
    [zhangy@localhost ~]$ echo "2222" >> 2.txt
    [zhangy@localhost ~]$ cat 2.txt
    2222
    2222

    从上面的这个例子我们可以看出,>>重定向到文件时,会将输出写到文件的结尾。这一点和>完全不同的。

    3,0,1,2 到9,以及

    复制代码 代码如下:

    [zhangy@localhost ~]$ cat 1.txt
     333
     111
     222
     444
     [zhangy@localhost ~]$ grep "22" 0 1.txt  //把1.txt中的内容读取出来
     222
     [zhangy@localhost ~]$ ls tank 2>> 1.txt   //将错误信息放到文件的结尾
     [zhangy@localhost ~]$ cat 1.txt
     333
     111
     222
     444
     ls: tank: 没有那个文件或目录                 //这个就是 2>> 1.txt产生的内容
     [zhangy@localhost ~]$ (ls tank ;pwd) >1.txt   //将错误信息,以及输出内容放到1.txt文件中,(stderr,stdout)
     [zhangy@localhost ~]$ cat 1.txt
     ls: tank: 没有那个文件或目录
     /home/zhangy

    i>j重定向文件描述符i 到 j.指向i文件的所有输出都发送到j中去. i和j呢是0-9这间的数字

    复制代码 代码如下:

    [zhangy@localhost ~]$ ls tank 2>1|egrep \* 1> 2.txt  //在这里我把错误信息重定向到了1,在这里1就会输出错误,根赋值差不多
    [zhangy@localhost ~]$ cat 2.txt
    ls: tank: 没有那个文件或目录

    4,>的用法
    <这个符号是读取,>这个符号是输出,放在一起就打开并且读取,

    复制代码 代码如下:

    [zhangy@localhost ~]$ echo 123546 > 2.txt
    [zhangy@localhost ~]$ exec 4> 2.txt     //打开2.txt并将内容读取到&4中
    [zhangy@localhost ~]$ read -n 4 4      //从&4中读取4个字符
    [zhangy@localhost ~]$ echo -n . >4      //在向&4写入一个点
    [zhangy@localhost ~]$ exec 4>-          //关闭输出文件描述符4
    [zhangy@localhost ~]$ cat 2.txt
    1235.6

    能过上面的这个例子,就可以很清楚了解>他的作用

    5,n-关闭输入文件描述符n         n>关闭输出文件描述符n

    复制代码 代码如下:

    [zhangy@localhost ~]$ ls tank          //会提示错误
    ls: tank: 没有那个文件或目录
    [zhangy@localhost ~]$ ls tank 2>-     //我把错误关闭后,什么也不输出了

    6,|管理命令

    这个命令也是我们常用的,是典型的,把一个命令的输出,当作另一个命令的输入

    复制代码 代码如下:

    [zhangy@localhost ~]$ echo tank | wc -w
     1

    表示tank是一个输出,但它又是wc的输入,不然就不会有统计出现了。

    您可能感兴趣的文章:
    • shell 1>&2 2>&1 &>filename重定向的含义和区别
    • Linux base shell重定向详解
    • linux shell数据重定向(输入重定向与输出重定向)详细分析
    • linux shell 管道命令(pipe)使用及与shell重定向区别
    • linux shell 脚本实现tcp/upd协议通讯(重定向应用)
    • shell脚本中取消重定向的方法实例
    • Windows Powershell 管道和重定向
    • Shell脚步攻略之管道重定向基础
    • Shell中重定向的深入讲解
    上一篇:Shell脚本函数定义和函数参数
    下一篇:awk中RS、ORS、FS、OFS的区别和联系小结
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    shell常用重定向实例讲解 shell,常用,重定向,实例,