我有一个练习来编写一个将执行以下管道处理的程序:
ls -la | grep "^d" | more
然而,在执行我的程序后,bash解释器不会换行也不会正确显示命令,但是在执行它们后显示结果,看起来控制台的输入没有进入标准输出,而是在其他地方,我找不到原因这种行为。
我正在使用 3 个子进程和 stdio 重定向来连接它们之间的管道。
程序成功完成它显示了良好的结果,没有显示错误或其他什么,当我使用 cat 而不是更多时,执行后一切正常,是否有可能更多地更改某些系统值并且不会将它们改回来?