shell上手中,shell命令执行,正常输出可以获得,但对于出错信息,如何获取没能解决。今天查了一天资料,算是找着了一个切换输出的办法。就是exec函数。

man exec可以看到其有一些参数可以用:

< fileName

打开以fileName命名的文件作为标准输入为第一个命令。

<< value

以Value作为第一个命令的标准输入。

​> fileName

最后一个标准结果输出覆盖输出到fileName文件

​2> fileName

所有命令的错误输出覆盖输出到fileName文件

​>& fileName最后一个标准结果输出和所有命令的错误输出覆盖输出到fileName文件

>> fileName最后一个标准结果输出追加输出到fileName文件

​2>> fileName所有命令的错误输出追加输出到fileName文件

>>& fileName

最后一个标准结果输出和所有命令的错误输出追加输出到fileName文件

eg:

hadoop fs -ls XXX

如果执行该命令,假定XXX是不存在的,那么结果为:

1、16/05/28 19:41:45 INFO hdfs.PeerCache: SocketCache

disabled.

2、ls: `aaa': No such file or directory

1、不是结果,是提示,2是错误信息。如果正常情况下获取输出,1是获取不到的,2是出错信息也获取不到。

但如果XXX存在,那么2就是文件的大小信息等,作为结果是可以获取到的。

设置exec 2>>

file1,那么在出错情况下,上述1、2都会追加到file1的末尾,如果执行成功,1追加到file1末尾,正确的2作为结果可以被获取到。

linux shell捕获异常,shell脚本中如何获取错误输出相关推荐

  1. 在Shell或Bat脚本中激活conda环境

    转自:https://heary.cn/posts/%E5%9C%A8Shell%E6%88%96Bat%E8%84%9A%E6%9C%AC%E4%B8%AD%E6%BF%80%E6%B4%BBcon ...

  2. shell脚本中如何获取命令的参数(2) ----处理命令参数

    1    找出选项 1.1 处理简单选项 主要可以通过shfit工具对获取的到$1变量对比程序允许的变量值判断: 1.2  从参数中分离选项 一般参数可能在后面跟上适当的参数值,例如 sed   -f ...

  3. python logger设置信息取得_shell 脚本中如何获取 python logging 打印的信息?

    在 shell 脚本中调用 python 的接口,但是 python API 是通过 python 的 logging 把相关信息打印到屏幕上的,不知道这种情况在 shell 中怎么获取这些 logg ...

  4. Linux批量替换sh脚本中\r 符号

    一.脚本中出现\r的原因 该脚本在window上编辑过,widnow 上文件换行是 \r\n 而 linux上是 \n.     在Windows下换行的"\r"到了Linux环境 ...

  5. 编译 puppy linux,Puppy Linux import gtk在Python中抛出错误

    我使用的是Linux版本2.6.24.16.我相信它使用的是Puppy linux4.2.我实际上在使用小狗游乐场,这是一个专门的分支.然而,他们的帮助文件暗示它是4.2.在 这个包声称有pygtk, ...

  6. Linux和Windows命令行中使用命令的输出(删除几天前的日志)

    如果我们需要在命令行中使用命令的结果,需要怎么做? 很常见的一种情况是我们需要当前工作目录的路径.在Linux下,可用这样: $ echo `pwd` $ ./mdu `pwd` 在Windows下面 ...

  7. linux AS 5 DNS 配置中的小错误

    今天用linux AS 5 配置dns的时候.基础本地东西都配完了.可是就是解析不了.郁 闷了许久.我擦,竟然是在添加地址的时候出错了: 正确的地址: 错误的地址: 转载于:https://blog. ...

  8. shell 脚本中获取执行系统命令的输出结果

    这个主要介绍的方法是获取命令的输出内容,而不是命令执行成功与否的返回值. 通常情况下,在shell脚本中需要获取命令的输出内容,然后根据输出内容判断下一步的执行操作. 比较常用的一种方式就是, 匹配命 ...

  9. linux shell脚本中调用另一个shell脚本

    先来说一下主要以下有几种方式: 1.fork: 如果脚本有执行权限的话,path/to/foo.sh.如果没有,sh path/to/foo.sh. 2.exec: exec path/to/foo. ...

  10. linux fork脚本,在Shell脚本中调用另一个脚本的三种方式讲解

    先来说一下主要以下有几种方式: fork: 如果脚本有执行权限的话,path/to/foo.sh.如果没有,sh path/to/foo.sh. exec: exec path/to/foo.sh s ...

最新文章

  1. AOP和IOC的作用
  2. 探索频道和谷歌联合制作七大洲人文VR视频,11月3日可收看
  3. 北京高性能计算机应用中心,中国气象局高性能计算机系统资源使用报告-北京高性能计算机应用中心.PDF...
  4. seo需要处理页面html,为什么单页面的seo不友好?如何解决这一问题?
  5. 2015年第六届蓝桥杯 - 省赛 - C/C++大学A组 - F. 牌型种数
  6. 360公司2019秋季校园招聘内部推荐启动啦!!!
  7. #python练习实例0:制作1-100随机抽取3个数字排队列
  8. Spring-beans-ListableBeanFactory/AutowireCapableBeanFactory/HierarchicalBeanFactory
  9. ABP官方文档翻译 3.7 领域事件(事件总线)
  10. python模拟栈的操作实现非递归方式的快速排序算法
  11. 【笔记总结】C陷阱与缺陷
  12. iOS 音频本地和在线播放器
  13. 一次苦中作乐的追码过程(上)
  14. 无限地球危机的观看顺序
  15. 网络编程-procmon
  16. 微信小程序实现图片预览的功能
  17. 融云发送图片消息_融云开发者文档
  18. BookKeeper AutoRecovery
  19. 什么是Hadoop - HDFS - MapReduce - YARN - HA
  20. Springboot疫苗接种管理系统-JAVA.JSP【计算机毕业设计、源码、开题报告】

热门文章

  1. springmvc ajax返回数据中文乱码
  2. teamcity mysql 配置_TeamCity
  3. 关系代数运算集(数据库)
  4. psm倾向得分匹配法举例_倾向得分匹配法的详细解读
  5. Take it easy
  6. 可变换大小的星星c语言源程序,五邑大学试卷_C语言程序设计_信息学院各专业_B卷1教学内容.doc...
  7. 福师计算机在线作业在每个w,16春季福师《计算机应用基础》在线作业二
  8. java 向文件写数据_java向文件写数据的3种方式
  9. mysql backup user_mysql备份常见命令
  10. GBDT, Gradient Boost Decision Tree,梯度提升决策树