免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2388 | 回复: 5

[学习共享] 重定向 管道 相关命令 困惑其执行顺序  [复制链接]

论坛徽章:
0
发表于 2014-04-14 13:53 |显示全部楼层
本帖最后由 hujysh 于 2014-04-14 15:54 编辑

问题简化一下是这样的:
一系列命令可能是记录在文件,想依次执行,执行过程中有交互输入,所以输出需要在屏幕,同时,所有输出要记录在日志文件,
如果某个命令返回值非0,则终止运行。
shell程序如下:
  1. #!/bin/sh

  2. TF=/mydir/tmpfile
  3. LOGFILE=/mydir/logfile

  4. while read cmd ; do

  5.   (eval $cmd 2>&1; echo $? > $TF)|tee -a $LOGFILE
  6.   ret=$(cat $TF)
  7.   [ $ret -ne 0 ] && {
  8.     echo $cmd exit with code $ret
  9.     exit $ret
  10.    }

  11. done < CommandFile

  12. exit 0
复制代码
----经多次测试,发现其中
  echo $? > $TF  之中的  >$TF   称为A
  和 后面
  ret=$(cat $TF)  之中的 cat $TF  称为B

多数情况下 先做A后做B
有时候也会 先做B后做A 为什么会有这种情况?? 而这时候就有问题 
请高手支招。。。


论坛徽章:
6
摩羯座
日期:2013-12-27 09:45:04技术图书徽章
日期:2014-01-27 12:40:06辰龙
日期:2014-02-28 15:12:52巳蛇
日期:2014-03-21 17:06:27未羊
日期:2014-04-15 20:12:41黑曼巴
日期:2016-08-02 11:00:06
发表于 2014-04-14 14:17 |显示全部楼层
回复 1# hujysh


    这问题描述的....
   提示不存在那文件到底是存在还是不存在

论坛徽章:
0
发表于 2014-04-14 15:09 |显示全部楼层
回复 2# laliheyi


    会多次执行那个 cat $TF
    有时候正常 $TF 存在;有时候它会不存在

论坛徽章:
0
发表于 2014-04-14 16:32 |显示全部楼层
没有人碰到过?
这个不知道咋回事。。。。

论坛徽章:
145
技术图书徽章
日期:2013-10-01 15:32:13戌狗
日期:2013-10-25 13:31:35金牛座
日期:2013-11-04 16:22:07子鼠
日期:2013-11-18 18:48:57白羊座
日期:2013-11-29 10:09:11狮子座
日期:2013-12-12 09:57:42白羊座
日期:2013-12-24 16:24:46辰龙
日期:2014-01-08 15:26:12技术图书徽章
日期:2014-01-17 13:24:40巳蛇
日期:2014-02-18 14:32:59未羊
日期:2014-02-20 14:12:13白羊座
日期:2014-02-26 12:06:59
发表于 2014-04-14 17:06 |显示全部楼层
回复 4# hujysh

问题本不难,你又不举例,
描述又乱写,让人费疑猜?

you didn't provide CommandFile data

论坛徽章:
0
发表于 2014-04-15 10:23 |显示全部楼层
问题没有描述清楚,另外开了个帖,请看下 http://bbs.chinaunix.net/forum.p ... ;extra=#pid24166900 谢谢!回复 5# jason680


   
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP