为什么该管道会收到 SIGTTIN?

为什么该管道会收到 SIGTTIN?

当我运行命令时for i in *.log; do cat "$i" | sort; done | more,管道收到SIGTTIN信号并停止。

bash$ for i in *.log; do cat "$i" | sort; done | more
### (one screenful of output...)
--More--
### (press Space)
[1]+  Stopped                 for i in *.log;
do
    cat "$i" | sort;
done | more
bash$ echo $?
149     # indicates SIGTTIN(21)

(我用一个简单的脚本替换了cat一个更复杂的awk脚本。)

我不明白为什么SIGTTIN生成 a ,因为没有进程从 tty 读取,除了more,它不在后台。有人可以解释一下这是怎么回事吗?

相关内容