Linux Shell重定向介绍

 Linux文件描述符

可以理解为linux跟踪打开文件,而分配的一个数字,这个数字类似C语言操作文件时候的句柄,通过句柄就可以实现文件的读写操作。用户可以自定义文件描述符范围:3-num     (ulimit -n) 

Linux启动后,会默认打开3个文件描述符,分别是:

  • 标准输入standard input 0
  • 正确输出standard output 1
  • 错误输出error output 2

    以后打开文件,新增文件绑定描述符可以一次增加
    一条shell命令执行,都会继承父进程的文件描述符。因此,所有运行的shell命令,都会有默认3个文件描述符。
  
对于任何一条Linux命令执行的过程: file(key board) --standard input --> Command --standard output--> file/device
                                                                                   --standard error-->  file/device

Linux shell下常用输入输出操作符

  • 标准输入(stdin): 代码为0, 使用< 或 <<(双数为追加操作符 ; /dev/stdin -> /proc/self/fd/0   0代表/dev/stdin
  • 标准出入(stdout): 代码为1, 使用>或>> ; /dev/stdout -> /proc/self/fd/1
  • 标准错误输出(stderr): 代码为2,使用2>或2>>; /dev/stderr -> /proc/self/fd/2

输出重定向:

command-line1 [1-n] > file或文件操作符或设备   -> 将一条命令执行结果(stdout,stderrr本来要打印到屏幕上面的)重定向到其它输出设备
 ls test.sh test1.sh   ----ls:test1.sh: 没有这个文件和目录
    ls test.sh test1.sh 1>suc.txt 2>err.txt
    ls test.sh test1.sh 2>&- test.sh  ---&[n]代表已经存在的文件描述符,&1代表输出,&2代表错误输出,&-代表关闭与它绑定的描述符
    ls test.sh test1.sh 2>/dev/null test.sh  ---- /dev/null 即为空,黑洞:吞噬一切信息
    ls test.sh test1.sh 2>/dev/null 1>/dev/null 
    ls test.sh test1.sh /dev/null 2>&1  ---将错误输出2绑定给正确输出1,然后将正确输出发送给 /dev/null设备 *******
    ls test.sh test1.sh &>/dev/null   ----&代表所有输出

 

#   shell遇到'>'操作符,会先判断右边文件是否存在,如果存在先删除,并创建新文件
#   ">>"操作符,判断右边文件,如果不存在则创建。如存在则以添加方式打开文件
#   一条命令在执行前,会先检查设备输出是否正确,如果输出设备错误,将不会进行命令执行

 

 

shell:   ret=$?
         if [ $ret -eq 0 ] ; then
             ...       

         -> $?是shell变量,表示最后一次执行命令的退出状态,0为成功,非0为失败

'' : 单引号中嵌套单引号可使用变量  'echo '$var' is ...'

 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

LuckyJiang.2021

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值