开发者社区 问答 正文

关于linux管道命令中子进程与父进程问题

今天遇到了一个奇怪问题 :

opt=222;echo "dsda" | opt=5555
echo opt

输出结果为:222

结果是222,那么可以解释为管道命令实际上会启动一个子进程,也就是说opt=5555会在子进程中执行。

opt=222;echo "dsda" | opt=5555;echo $opt
输出结果为:222

可是这个结果又做何解释? 理论上不应该是5555吗,可是为何输出了在父进程中定义的222呢?

展开
收起
a123456678 2016-06-13 10:47:06 2319 分享
分享
版权
举报
1 条回答
写回答
取消 提交回答
  • 应该是这样看的吧 opt=222(A) cho "dsda" | opt=5555(B)echo $opt(C)=>A,B,C那么所以说C那个命令还是在父进程执行的。如果 (opt=222 && echo "dsda") | (opt=5555 && echo $opt)就正确了

    2019-07-17 19:35:18 举报
    赞同 评论

    评论

    全部评论 (0)

    登录后可评论
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等