- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:UNIXのshでの入力受付について)
UNIXのshでの入力受付について
このQ&Aのポイント
- UNIXのshで入力受付をする方法としては、通常「read 変数名」というコマンドを使用します。しかし、現在の状況ではこの入力受付がスルーされるという問題に直面しています。
- 質問は、UNIXのshでの入力受付方法や、read以外のキー入力受付のコマンドの有無、および回避方法についてです。実行環境はHP-UX 11.0です。
- 質問文章は、UNIXのsh上での入力受付方法に関する問題を述べており、入力受付がスルーされる現象に悩んでいるという内容です。質問は、read以外のキー入力受付のコマンドの有無や回避方法についてです。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
入力がスルーされているわけではないです。パイプラインの後の while ~ のコマンド全体の 標準入力を read しているわけです。以下のように書いてみれば、どういうふうに動いているか 分かりますよね? ls -l | while read VAL_A ; do read VAL_B echo "A: $VAL_A" echo "B: $VAL_B" done で、解決法なんですが、以下のようにしてみては? ls -l | while read VAL_A ; do echo "test" read VAL_B <&1 ※ ここに注目! done # HP-UX では試してません
お礼
回答ありがとうございます。 お答えいただいた対処法で試した所 うまくいきました! 標準出力を標準入力にリダイレクトして lsのデータを取らせないようにするという方法ですね。 それなら、 readプロセスのストリーム ・コマンドのデータ=STDIN ・入力受付用=STDOUT という風に分けられますね。 回答ありがとうございました。