shell IO

shell脚本或者Linux终端上,常用的IO文件描述符有三个:

  • 0 标准输入(stdin
  • 1 标准输出 (stdout
  • 2 标准错误 (stderr)

标准输入一般为键盘,标准输出和标准错误一般都是显示器。可以在shell脚本的后面添加 >filename,将标准输出重定向到文件中。

重定向

一般情况下,shell脚本的标准输出和标准错误都是输出到显示器上的,我们可以通过IO重定向,将标准输出和标准错误重定向其他文件或设备。

IO重定向的一般形式如下:

  $ echo "hello,world" > filename$ echo "hello,world`  1>filename$ echo "some errors" 2>error
  • & 是一个描述符,如果1或2前不加&,会被当成一个普通文件。
  • 1>&2 意思是把标准输出重定向到标准错误.
  • 2>&1 意思是把标准错误输出重定向到标准输出。
  • &>filename 意思是把标准输出和标准错误输出都重定向到文件filename中

示例

    #!/usr/bin/env bashset -uxeecho "error" >&2 #将error输出到标准出错echo "succ"  >&1 #将succ输出到标准输出注意:2和1之前需要&,否则,其会被当作文件名,并且>前后不能有空格。
$ ./io.sh 2>stderr 1>stdin #将标准输出重定向到stdin文件,标准错误输出到stderr文件,注意,2与>,1与>之间没有空格。
$ ./io.sh 1>stdin 2>&1 #将标准错误和标准输出都重定向到stdin文件中。$ cat stdin
error
stdin
$ ./io.sh 2>stderr 1>&2 #将标准错误和标准输出重定向到stderr文件。
$ ./io.sh &>stderr #将标准错误和标准输出重定向到stderr文件,与第一个运行方式效果相同。注意:>前后不要有空格。$ cat stderr
error
stdin
$ ./io.sh &>/dev/null #标准输出和标准错误重定向到/dev/null设备

Linux shell脚本IO重定向相关推荐

  1. Linux Shell脚本入门教程系列之(十六) Shell输入输出重定向

    本文是Linux Shell系列教程的第(十六)篇,更多Linux Shell教程请看:Linux Shell系列教程 Shell中的输出和输入的重定向是在使用中经常用到的一个功能,非常实用,今天就为 ...

  2. Linux shell脚本基础学习

    Linux shell脚本基础学习这里我们先来第一讲,介绍shell的语法基础,开头.注释.变量和 环境变量,向大家做一个基础的介绍,虽然不涉及具体东西,但是打好基础是以后学习轻松地前提. 1. Li ...

  3. linux运维实战练习及linux shell脚本、awk、sed工具命令学习总结

    一.linux shell 脚本 1.描述shell程序的运行原理(可附带必要的图形说明): Linux系统的shell作为操纵系统的外壳,为用户提供使用操纵系统的接口.它是命令语言.命令解释程序及程 ...

  4. Linux shell脚本基础学习详细介绍(完整版)一

    Linux shell脚本基础学习这里我们先来第一讲,介绍shell的语法基础,开头.注释.变量和 环境变量,向大家做一个基础的介绍,虽然不涉及具体东西,但是打好基础是以后学习轻松地前提. 1. Li ...

  5. linux sh脚本 while,Linux shell脚本使用while循环执行ssh的注意事项

    原标题:Linux shell脚本使用while循环执行ssh的注意事项 如果要使用ssh批量登录到其它系统上操作时,我们会采用循环的方式去处理,那么这里存在一个巨大坑,你必须要小心了. 一.场景还原 ...

  6. Linux shell脚本基础学习详细介绍(完整版)

    Linux shell脚本基础学习这里我们先来第一讲,介绍shell的语法基础,开头.注释.变量和 环境变量,向大家做一个基础的介绍,虽然不涉及具体东西,但是打好基础是以后学习轻松地前提. 1. Li ...

  7. linux shell 豆瓣,用Linux shell脚本爬取豆瓣邮箱

    前两天总结一下邮箱格式的正则表达式,写了一个脚本来判断输入的邮箱地址是否符合邮箱的格式(有兴趣的朋友可以翻一下我的博客去看一下).在网上找资料的时候,发现基本都是用Python和Java来做爬虫,当然 ...

  8. Linux Shell脚本入门教程系列之(十五) Shell函数简介

    本文是Linux Shell脚本系列教程的第(十五)篇,更多Linux Shell教程请看:Linux Shell脚本系列教程 上一篇之后,函数可以将一个复杂功能划分成若干模块,从而使程序结构更加清晰 ...

  9. Linux Shell脚本入门教程系列之(十一)Shell while循环

    本文是Linux Shell脚本系列教程的第(十一)篇,更多Linux Shell教程请看:Linux Shell脚本系列教程 在上一篇Linux Shell系列教程之(十)Shell for循环中, ...

最新文章

  1. Python:Selenium和PhantomJS
  2. C++设计模式(转)
  3. 第六十三期:放下你手里的代码,小心被抓!
  4. 编程语言c 是什么意思,C/C++知识点之C语言中%*s,%*c 是什么意思
  5. 在javascript中调用java
  6. flask+socketio+echarts3 服务器监控程序(基于后端数据推送)
  7. 【量化】CSFB阿尔法多因子模型研究
  8. WebRAY网站检查技术支撑平台的实践
  9. 教程篇:《基础模块4》金蝶K3WISE15.0-客户端安装与卸载
  10. 在html中加入中文字体,css设置中文字体
  11. Unity 贴图Meta文件的探究
  12. SPIR-V教程 -- SPIRV变量
  13. 计算机网络 pan名词解释,计算机网络名词解释
  14. 初窥 RAP:如何使用 RAP 进行接口文档管理
  15. Demystifying Ethernet Types— Difference between Cat5e, Cat 6, and Cat7
  16. msf之使用震网三代来提权
  17. 【python】python 如何跳过异常继续执行
  18. 计算机毕业设计ssm科研成果管理系统设计与实现
  19. 启发式合并详解 (基于CF 1620E - Replace the Numbers)
  20. html汽车跑动特效,纯CSS3实现汽车行驶动画 特效源码!

热门文章

  1. 计算机辅助数据录入方式,Excel中数据输入的方法有哪些?
  2. Linux命令-ls详解
  3. oracle 分组排序
  4. Linux中的程序和进程,top使用和PID和PPID
  5. 男孩大专学计算机专业,男孩上大专学什么专业发展前景好
  6. 小技巧-cmd常用命令之创建文件
  7. 微信退款 v2版本 invalid detail参数格式错误
  8. 抖音新作品监控助手,可以帮您同时监控多个目标账号,监控用户发作品后,可以第一时间提醒,下载无水印视频,还可以自动修改MD5。
  9. JavaScript经典教程系列-李游Leo-专题视频课程
  10. pdf怎么转换为word文档?简单三步搞定pdf转word