- ベストアンサー
シェルの read で入力されなかったときの対処
bashを使用しています。 キーボードから入力した文字列を検索するシェルスクリプトを作ってみたいのですが read -p "検索したい言葉を入力してください" hoge として実際実行した時に何も入力しないままエンターを押してしまうと改行されてCtrl+Cで強制的に抜けないといけない状態です。 このような場合はどうやって対処するのでしょうか?
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
何も入力しないでEnterを押してもreadは終了して、hoge には空が入ります。 お書きのような状態になるのは、read 後の処理の問題です。
お礼
ご回答ありがとうございます。 readの後に入れていたgrepコマンドがうまく処理されなかったみたいです。 grep -c $hoge ファイル名 ←これで止まっているわけですね データが空かチェックすることを調べて if [ -z $hoge ] で空かどうか判別してくれることがわかったので 空じゃなかった時だけ処理するように変更したら動きました(^o^)/