• ベストアンサー

シェルの read で入力されなかったときの対処

bashを使用しています。 キーボードから入力した文字列を検索するシェルスクリプトを作ってみたいのですが read -p "検索したい言葉を入力してください" hoge として実際実行した時に何も入力しないままエンターを押してしまうと改行されてCtrl+Cで強制的に抜けないといけない状態です。 このような場合はどうやって対処するのでしょうか?

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

  • ベストアンサー
  • notnot
  • ベストアンサー率47% (4900/10358)
回答No.1

何も入力しないでEnterを押してもreadは終了して、hoge には空が入ります。 お書きのような状態になるのは、read 後の処理の問題です。

ok_seed
質問者

お礼

ご回答ありがとうございます。 readの後に入れていたgrepコマンドがうまく処理されなかったみたいです。 grep -c $hoge ファイル名  ←これで止まっているわけですね データが空かチェックすることを調べて if [ -z $hoge ] で空かどうか判別してくれることがわかったので 空じゃなかった時だけ処理するように変更したら動きました(^o^)/

関連するQ&A