bash - 対話的な処理
メッセージの出力
echoコマンドやヒアドキュメントを使う。
問い合わせメッセージの出力と応えの取得
応答入力待ちの状態のときは、カーソルがメッセージの後ろにくる
#!/usr/bin/sh echo -n "[y/n]? " ##-nオプションを使うと改行しない read val1 case "$val1" in y | yes ) frag=true ;; * ) frag=false ;; esac
1文字だけ取り出す
sedやexprコマンドを使う
#!/usr/bin/sh echo -n "[yes/no]? " read val1 val1=`expr "$val1" : "\(.\).*"` echo "$val1"
ある条件下でのメッセージ出力
フラグの値によってメッセージを出す出さないかをifで文処理する。
何かメッセージを出すたびif文を書かなければならず面倒なので、変数にechoを入れる。
#!/usr/bin/sh if [ "$var" = "true" ];then ECHO=echo else ECHO=: fi #... $ECHO "message"