开发者社区> 问答> 正文

关于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 2226 0
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
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Alibaba Cloud Linux 3 发布 立即下载
ECS系统指南之Linux系统诊断 立即下载
ECS运维指南 之 Linux系统诊断 立即下载