ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

数据流重定向

2020-11-30 22:03:12  阅读:156  来源: 互联网

标签:输出 重定向 list cmd1 cmd2 数据流 root 运行


20.11.30

数据流重定向

  • 标准输入  (stdin) :代码为 0 ,使用 < 或 << ;
  • 标准输出  (stdout):代码为 1 ,使用 > 或 >> ;
  • 标准错误输出(stderr):代码为 2 ,使用 2> 或 2>> ;

  • 1> :以覆盖的方法将『正确的数据』输出到指定的文件或装置上;

  • 1>>:以累加的方法将『正确的数据』输出到指定的文件或装置上;

  • 2> :以覆盖的方法将『错误的数据』输出到指定的文件或装置上;

  • 2>>:以累加的方法将『错误的数据』输出到指定的文件或装置上;

  • 0<:

      用 stdin 取代键盘的输入以创建新文件的简单流程
      [root@www ~]# cat > catfile < ~/.bashrc
      [root@www ~]# ll catfile ~/.bashrc
      -rw-r--r-- 1 root root 194 Sep 26 13:36 /root/.bashrc
      -rw-r--r-- 1 root root 194 Feb  6 18:29 catfile
      # 注意看,这两个文件的大小会一模一样!几乎像是使用 cp 来复制一般!
    
  • 0<<:

    [root@www ~]# cat > catfile << "eof" <==这里“eof”代表结束的输入字符
    > This is a test.
    > OK now stop
    > eof  <==输入这关键词,立刻就结束而不需要输入 [ctrl]+d 
    
    [root@www ~]# cat catfile  <==我要用 cat 直接将输入的信息输出到 catfile 中, 且当由键盘输入 eof 时,该次输入就结束
    This is a test.
    OK now stop     <==只有这两行,不会存在关键词那一行!
    
    • 屏幕输出的信息很重要,而且我们需要将他存下来的时候;
    • 背景运行中的程序,不希望他干扰屏幕正常的输出结果时;
    • 一些系统的例行命令 (例如写在 /etc/crontab 中的文件) 的运行结果,希望他可以存下来时;
    • 一些运行命令的可能已知错误信息时,想以『 2> /dev/null 』将他丢掉时;
    • 错误信息与正确信息需要分别输出时。

  • /dev/null 垃圾桶黑洞装置与特殊写法

    ls -a > /dev/null:将该命令输出内容丢到垃圾桶~


将命令的正确错误数据全部写入名为 list 的文件中
[dmtsai@www ~]$ find /home -name .bashrc > list 2> list  <==错误
[dmtsai@www ~]$ find /home -name .bashrc > list 2>&1     <==正确
[dmtsai@www ~]$ find /home -name .bashrc &> list   

命令运行的判断依据: ; , &&, ||

  • cmd ; cmd (不考虑命令相关性的连续命令下达)

  • 若前一个命令运行的结果为正确,在 Linux 底下会回传一个 $? = 0 的值

命令下达情况 说明
cmd1 && cmd2 1. 若 cmd1 运行完毕且正确运行($?=0),则开始运行 cmd2。 2. 若 cmd1 运行完毕且为错误 ($?≠0),则 cmd2 不运行。
cmd1 || cmd2 1. 若 cmd1 运行完毕且正确运行($?=0),则 cmd2 不运行。 2. 若 cmd1 运行完毕且为错误 ($?≠0),则开始运行 cmd2。

标签:输出,重定向,list,cmd1,cmd2,数据流,root,运行
来源: https://www.cnblogs.com/ananing/p/14064059.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有