• Shell 文件描述符


    <pre name="code" class="sql">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又重新指向其原来位置。
        这种方法就是在脚本程序中临时将输出重定向然后再将输出恢复到通常设置的方法~还是会经常用到的.
    标准输入STDIN就是0,标准输出STDOUT就是1,标准错误输出STDERR就是2。而我们也可以自己创建文件描述符3~8。
    
    
    cmd 2>file	 把文件描述符2重定向到file,即把错误输出存到file中。
    cmd > file 2>&1	 把标准错误重定向到标准输出,再重定向到file,即stderr和stdout都被输出到file中
    cmd &> file	 功能与上一个相同,更为简便的写法。
    cmd >& file	 功能仍与上一个相同。
    cmd > f1 2>f2	 把stdout重定向到f1,而把stderr重定向到f2
    tee files	 把stdout原样输出的同时,复制一份到files中。
    tee files	 把stderr和stdout都输出到files中,同时输出到屏幕
    
    
    [oracle@june2 ~]$ clear
    [oracle@june2 ~]$ ls -ltr xxx
    ls: xxx: 没有那个文件或目录
    
    
    [oracle@june2 ~]$ ls -ltr xxx 2>file 
    
    
    [oracle@june2 ~]$ cat file 
    ls: xxx: 没有那个文件或目录
    
    
    将错误输出到file 文件
    
    
    
    
    [oracle@june2 ~]$ ls -ltr sqlplus.txt 1>file 
    
    
    
    
    [oracle@june2 ~]$ cat file 
    -rw-r--r-- 1 oracle dba 6283 07-25 15:41 sqlplus.txt
    
    
    将标准输出到file


    
                                        
    
  • 相关阅读:
    jQuery函数继承 $.extend, $.fn.extend
    [原创]茗洋AaronYang的 jquery.myselect.js 我的一次前端突破[上]
    EasyUI 的 combotree 加载数据后折叠起来,并且只允许单击子节点的写法
    判断js数组包是否包含某个元素
    JS中 HTMLEncode和HTMLDecode
    Easyui datagrid 特殊处理,记录笔记
    easyui tab上面添加右键菜单
    第三方文本框 在div中显示预览,让指定节点不受外部css影响
    Easyui 让Window弹出居中
    C# txt格式记录时间,时间对比,决定是否更新代码记录Demo
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13352164.html
Copyright © 2020-2023  润新知