PIPESTATUS 对于ksh 无效
BASH SHELL中,通常使用 $? 来获取上一条命令的返回码。
对于管道中的命令,使用$?只能获取管道中最后一条命令的返回码,例如
下面的例子中/not/a/valid/filename是一个不存在的文件
cat /not/a/valid/filename|cat
第一个cat失败,第二个cat成功,所以$?的值为0
这种情况下,可以使用 $PIPESTATUS来获取管道中每个命令的返回码。
注意:
1、PIPESTATUS 是一个数组,第一条命令的返回码存储在${PIPESTATUS[0]},以此类推,上例中执行完管道中所有的命令后,PIPESTATUS数组第一个元素值为1,第二个元素值为0
2、如果前一条命令不是一个管道,而是一个单独的命令,命令的返回码存储为${PIPESTATUS[0]},此时${PIPESTATUS[0]}同$?值相同(事实上,PIPESTATUS最后一个元素的值总是与$?的值相同)
3、每执行一条命令,切记PIPESTATUS都会更新其值为上一条命令的返回码,
cat /not/a/valid/filename|cat
if [ ${PIPESTATUS[0]} -ne 0 ]; then echo ${PIPESTATUS[@]}; fi
上例中执行完管道后,${PIPESTATUS[0]}值为1,${PIPESTATUS[1]}值为0
但是上面的脚本执行完成后,输出为0,这是因为if 分支的测试命令
PIPESTATUS 对于ksh 无效的更多相关文章
- PIPESTATUS(bash) + pipefail(ksh)
I have two processes foo and bar, connected with a pipe: $ foo | bar bar always exits 0; I'm interes ...
- unix shell: ksh fundamental(Korn Shell)
Korn Shell 参考:ksh 学习 http://bbs.chinaunix.net/thread-1749811-1-1.html 1.语法 特殊的文件 /etc/profile 在登录时首先 ...
- SQLServer执行命令出现“目录无效的提示”
异常处理汇总-数据库系列 http://www.cnblogs.com/dunitian/p/4522990.html 一般都是清理垃圾清理过头了,把不该删的目录删了 网上说法: 问题描述: 1.s ...
- jQuery.Ajax IE8 无效(CORS)
今天在开发的时候,遇到一个问题,$.get()在 IE8 浏览器不起作用,但 Chrome,Firefox 却是可以的,网上资料很多,最后发现是 IE8 默认不支持 CORS 请求,需要手动开启下: ...
- IIS启动失败,启动Windows Process Activation Service时,出现错误13:数据无效 ;HTTP 错误 401.2 - Unauthorized 由于身份验证头无效,您无权查看此页
因为修改过管理员账号的密码后重启服务器导致IIS无法启动,出现已下异常 1.解决:"启动Windows Process Activation Service时,出现错误13:数据无效&quo ...
- 针对Linux ASP.NET MVC网站中 httpHandlers配置无效的解决方案
近期有Linux ASP.NET用户反映,在MVC网站的Web.config中添加 httpHandlers 配置用于处理自定义类型,但是在运行中并没有产生预期的效果,服务器返回了404(找不到网页) ...
- 修改linux的hosts 后提示“无效的参数”
碰到个问题,修改linux的主机名问题. vim /etc/hosts 192.168.154.129 129192.168.154.132 132192.168.154.133 133 本地ip是1 ...
- Base-64 字符数组或字符串的长度无效等问题解决方案
项目特殊需要,调用ActiveX三维控件进行控件某一特殊部位的截图操作,这个截图保存由ActiveX控件控制保存到本地是没问题的,现在需要将这个截图上传到服务器,多人共享,就牵扯到需要读取本地文件…… ...
- 解决Bash On Ubuntu On Window安装Zsh无效问题附安装说明
前言 Zsh是一款非常棒的Shell,使用Linux和Mac系统的人,基本上都知道zsh的存在. 问题 在安装完Zsh后,zsh是可以使用的,但是重启之后,又恢复至默认的bash. 我在安装好之后,使 ...
随机推荐
- spring 配置定时任务Scheduled
一:在spring配置的xml文件添加3条命名空间 xmlns:task="http://www.springframework.org/schema/task" xsi:sche ...
- 2016-2017-2 《Java程序设计》第五周学习总结
20155223 2006-2007-2 <Java程序设计>第五周学习总结 教材学习内容总结 第八章 try.catch语法:若程序发生错误,执行流程就调离错误点,然后比较catch括号 ...
- Redmine数据表字段说明
Redmine数据表结构 issues tracker_id 跟踪标签的id,外键到trakers表 project_id 外键到项目project subject 主题 description 问题 ...
- python实现梯度下降法
# coding:utf-8 import numpy as np import matplotlib.pyplot as plt x = np.arange(-5/2,5/2,0.01) y = - ...
- nginx配置php时fastcgi_pass参数问题
更多内容推荐微信公众号,欢迎关注: 在配置nginx的时候,fastcgi_pass的配置问题,如下所示: location ~ \.php$ { root /home/wwwroot; fastcg ...
- php Only variables should be passed by reference 报错问题
这个错误是变量引用引起的非致命错误,可修改php.ini文件的error_reporting = E_ALL & E_NOTICE 使其屏蔽此错误
- 在jsp中接收并处理servlet传过来的含有bean的List
在jsp中接收并处理servlet传过来的含有bean的List 例如有以下bean package com.test.domain; class Student{ private Stirng na ...
- go 函数介绍
1. 定义:有输入.有输出,用来执行一个指定任务的代码块 func functionname([parametername type]) [returntype] { //function body ...
- 84.VMware Tools安装——设置共享文件
一.安装VMware Tools 1.如图所示,点击安装 2.出现如下界面,将VMwareTools-9.6.2-1688356.tar.gz安装包复制到主文件夹下 3.输入命令tar -zxvf V ...
- JavaScript 简单吗
英文:Aurélien Hervé 译文:众成翻译/msmailcode 这里有一些 Javascript初学者应该知道的技巧和陷阱.如果你已经是专家了,顺便温习一下. Javascript也只不过 ...