gpt4 book ai didi

bash while read 循环和 stdin - 将嵌套命令的 stdin 强制为 tty?

转载 作者:行者123 更新时间:2023-12-02 00:47:18 25 4
gpt4 key购买 nike

<分区>

当管道进入 while 读取循环时,我终于遇到了令人惊讶的 stdin 行为。

考虑以下几点:

find . | while read file; 
do
echo "==[$file]==";
cat;
done

在这种情况下,cat只是任何从 STDIN 接收输入的命令的替代。令人惊讶的是(至少对我而言)cat的 STDIN 实际上来自 find , 所以它吞噬了其余的 find输出。

假设有人想直接从 tty 与 cat 中的命令进行交互的地方。例如。假设不是 cat你想要运行一个脚本,它可能会询问你想要交互响应的问题 ( "<file> exists: Overwrite? [y/n]" )。

有没有办法强制内部命令的 STDIN 成为 tty?

我发现了很多类似的问题,包括:Why redirect stdin inside a while read loop in bash?

但我无法很好地理解答案以使其发挥作用。

(编辑:根据对另一个问题的澄清,我现在认为这是该问题的副本。)

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