次のパイプ処理を行うプログラムを作成する演習がありました。
ls -la | grep "^d" | more
ただし、プログラムを実行した後、bash インタープリターは行を改行したり、コマンドを正しく表示したりしませんでしたが、それらを実行した後、結果が表示され、コンソールへの入力が標準出力ではなく別の場所にあるように見え、理由が見つかりませんこの動作。
stdio がリダイレクトされた 3 つの子プロセスを使用して、それらの間のパイプを接続しています。
プログラムは正常に終了し、良好な結果が表示されます。エラーは表示されません。また、実行後にすべてが正常に動作する代わりに cat を使用している場合、more によって一部のシステム値が変更され、元に戻されない可能性はありますか?