gpt4 book ai didi

bash - 为什么管道输入到 "read"仅在馈入 "while read ..."构造时才有效?

转载 作者:行者123 更新时间:2023-11-29 08:39:52 28 4
gpt4 key购买 nike

<分区>

我一直在尝试像这样从程序输出中读取环境变量的输入:

echo first second | read A B ; echo $A-$B 

结果是:

-

A 和 B 总是空的。我读到了有关 bash 在子 shell 中执行管道命令的信息,这基本上阻止了一个人通过管道输入进行读取。但是,以下内容:

echo first second | while read A B ; do echo $A-$B ; done

似乎可行,结果是:

first-second

谁能解释一下这里的逻辑是什么? while ... done 构造中的命令实际上是在与 echo 相同的 shell 中执行的,而不是在子 shell 中执行的吗?

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com