今天遇到了一个奇怪问题 :
opt=222;echo "dsda" | opt=5555
echo opt
输出结果为:222
结果是222,那么可以解释为管道命令实际上会启动一个子进程,也就是说opt=5555会在子进程中执行。
opt=222;echo "dsda" | opt=5555;echo $opt
输出结果为:222
可是这个结果又做何解释? 理论上不应该是5555吗,可是为何输出了在父进程中定义的222呢?
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
应该是这样看的吧 opt=222(A) cho "dsda" | opt=5555(B)echo $opt(C)=>A,B,C那么所以说C那个命令还是在父进程执行的。如果 (opt=222 && echo "dsda") | (opt=5555 && echo $opt)就正确了
你好,我是AI助理
可以解答问题、推荐解决方案等
评论
全部评论 (0)