• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:UNIXのshでの入力受付について)

UNIXのshでの入力受付について

このQ&Aのポイント
  • UNIXのshで入力受付をする方法としては、通常「read 変数名」というコマンドを使用します。しかし、現在の状況ではこの入力受付がスルーされるという問題に直面しています。
  • 質問は、UNIXのshでの入力受付方法や、read以外のキー入力受付のコマンドの有無、および回避方法についてです。実行環境はHP-UX 11.0です。
  • 質問文章は、UNIXのsh上での入力受付方法に関する問題を述べており、入力受付がスルーされる現象に悩んでいるという内容です。質問は、read以外のキー入力受付のコマンドの有無や回避方法についてです。

質問者が選んだベストアンサー

  • ベストアンサー
  • a-kuma
  • ベストアンサー率50% (1122/2211)
回答No.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 では試してません

ro-su
質問者

お礼

回答ありがとうございます。 お答えいただいた対処法で試した所 うまくいきました! 標準出力を標準入力にリダイレクトして lsのデータを取らせないようにするという方法ですね。 それなら、 readプロセスのストリーム ・コマンドのデータ=STDIN ・入力受付用=STDOUT という風に分けられますね。 回答ありがとうございました。

関連するQ&A