首页 / LINUX / Linux系统中while管道的
Linux系统中while管道的
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Linux系统中while管道的,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1997字,纯文字阅读大概需要3分钟。
内容图文
![Linux系统中while管道的](/upload/InfoBanner/zyjiaocheng/1189/d9dd556b79db4496868e5ba86d2690d4.jpg)
因为项目从AIX系统迁移到了RedHat系统,之前写过的一段Shell脚本不能成功运行,经过分析,锁定了关键代码如下:
readFileContent(){ currentFile=$1 fileShowRows=0 fileRealRows=0 fileBusinessDate=$2 fileCountStartTime=0 fileCountEndTime=0echo $1echo $2cat $1 | while read line doif [ "$fileRealRows" -eq "0" ] thenecho"$line" fileShowRows=`echo $line | awk‘{split($0,a,"|"); print a[1]}‘` fileCountStartTime=`echo $line | awk‘{split($0,a,"|"); print a[2]}‘` fileCountEndTime=`echo $line | awk‘{split($0,a,"|"); print a[3]}‘` echo"$fileShowRows"echo"$fileCountStartTime"echo"$fileCountEndTime"fiecho‘fileRealRows‘"$fileRealRows" let fileRealRows+=1echo‘fileRealRows‘"$fileRealRows"doneecho"$fileShowRows"echo"$fileRealRows"echo"$fileCountStartTime"echo"$fileCountEndTime" }
该段代码是用于解析一下一段文本的
1|20170322000001|201703222359591|00206342|020602|37906|20170322|083934|21205967090|21205967090|01|01|10002930|
其中用到了出现差异的一段代码是以while管道的方式读取文件内容,在AIX和Linux系统中执行的结果分别如下
AIX执行结果: 20170322 1|20170322000001|2017032223595912017032200000120170322235959 fileRealRows0 fileRealRows1 fileRealRows1 fileRealRows2 122017032200000120170322235959
Linux执行结果: 201703221|20170322000001|2017032223595912017032200000120170322235959 fileRealRows0 fileRealRows1 fileRealRows1 fileRealRows2 0000
从执行结果中可以看出来,Linux在子Shell中赋值的父变量对父Shell无效,而AIX系统是有效的。修改的方法如下
readFileContent(){ currentFile=$1 fileShowRows=0 fileRealRows=0 fileBusinessDate=$2 fileCountStartTime=0 fileCountEndTime=0echo $1echo $2while read line doif [ "$fileRealRows" -eq "0" ] thenecho"$line" fileShowRows=`echo $line | awk‘{split($0,a,"|"); print a[1]}‘` fileCountStartTime=`echo $line | awk‘{split($0,a,"|"); print a[2]}‘` fileCountEndTime=`echo $line | awk‘{split($0,a,"|"); print a[3]}‘` echo"$fileShowRows"echo"$fileCountStartTime"echo"$fileCountEndTime"fiecho‘fileRealRows‘"$fileRealRows" let fileRealRows+=1echo‘fileRealRows‘"$fileRealRows"done<$1echo"$fileShowRows"echo"$fileRealRows"echo"$fileCountStartTime"echo"$fileCountEndTime" }
原文:http://www.cnblogs.com/qizhelongdeyang/p/6995027.html
内容总结
以上是互联网集市为您收集整理的Linux系统中while管道的全部内容,希望文章能够帮你解决Linux系统中while管道的所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。