前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Linux-数据流重定向

Linux-数据流重定向

作者头像
悠扬前奏
发布2019-05-28 12:36:47
9220
发布2019-05-28 12:36:47
举报
文章被收录于专栏:悠扬前奏的博客

1.标准输入输出

指令执行过程中的数据传输

一般情况下,执行一个指令的结果是从键盘或者文件获取数据,经过处理之后输出到屏幕中。也就是standard output或者standard error output。

1.1 标准输出(STDOUT)和标准错误输出(STDERR)

数据流重定向就是指将标准输出和 标准错误输出输出到其他文件(Linux中设备也是文件)中去。

  • 标准输出是指指令执行所回传的正确的信息
  • 标准错误输出是指指令执行失败后,回传的错误信息

数据传送所用的特殊字符有:

  1. 标注输入(stdin):代码为0,使用< 或者 <<;
  2. 标注输出(stdout):代码为1,使用> 或者 >>;
    • >以覆盖的方式输出
    • >>以追加的方式输出
  3. 标注错误输出(stderr):代码为2,使用2> 或者 2>>;
    • 2>以覆盖的方式输出
    • 2>>以追加的方式输出

1.2 垃圾黑洞和其他特殊写法

  • /dev/null 可以销毁任何导向这个装置的信息。
  • 需要把正确和错误输出到同一个文件,要用如下命令: find /home -name .bashrc > list 2> list 错误,因为交叉写入文件可能导致次序混乱 find /home -name .bashrc > list 2>&1 正确 find /home -name .bashrc &> list 正确

1.3 标准输入:<和<<

  • < 将需要由键盘输入的数据,改为由文件输入。 如下代码可以把.bashrc内容输入,再输出到catfile文件中去: [root@iZwz9ayvrn26ptadymu9ymZ ~]# cat > catfile < ~/.bashrc [root@iZwz9ayvrn26ptadymu9ymZ ~]# ll catfile ~/.bashrc -rw-r--r-- 1 root root 176 Dec 27 15:05 catfile -rw-r--r--. 1 root root 176 Dec 29 2013 /root/.bashrc
  • << 指出结束的输入字符,如下代码用eof作为输入的结束:
代码语言:javascript
复制
  [root@iZwz9ayvrn26ptadymu9ymZ ~]# cat > catfile << "eof"
  > This is a test.
  > OK now stop
  > eof
  [root@iZwz9ayvrn26ptadymu9ymZ ~]# cat catfile
  This is a test.
  OK now stop

2. 指令执行控制

一次执行多条指令,需要用到指令执行控制。 包括连续下达(;),且(&&),或(||)。

2.1 cmd;cmd

不考虑指令相关性,顺序执行。

2.2 与(&&),或(||)

指令下达

说明

cmd1 && cmd2

cmd1执行完毕且正确($?=0)则cmd2执行

cmd1 || cmd2

cmd1执行完毕且错误($?≠0),才执行cmd2

根据指令执行的回传值(可以用$?获取)决定指令的执行与否。

指令下达

说明

cmd1 && cmd2

cmd1执行完毕且正确($?=0)则cmd2执行

cmd1 || cmd2

cmd1执行完毕且错误($?≠0),才执行cmd2

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2017.12.27 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.标准输入输出
    • 1.1 标准输出(STDOUT)和标准错误输出(STDERR)
      • 1.2 垃圾黑洞和其他特殊写法
        • 1.3 标准输入:<和<<
        • 2. 指令执行控制
          • 2.1 cmd;cmd
            • 2.2 与(&&),或(||)
            相关产品与服务
            命令行工具
            腾讯云命令行工具 TCCLI 是管理腾讯云资源的统一工具。使用腾讯云命令行工具,您可以快速调用腾讯云 API 来管理您的腾讯云资源。此外,您还可以基于腾讯云的命令行工具来做自动化和脚本处理,以更多样的方式进行组合和重用。
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档