シェルスクリプトでのメッセージ出力
シェルスクリプトでのメッセージ出力についてのメモ書きです。*1 シェルに依存する部分については、必要に応じて読み替えてください。
(参考:バッチファイルでのメッセージ出力)
echoコマンド
- メッセージ出力には、echoコマンドを使う。
- echoコマンドの出力先は、標準出力となる。
- 「echo -n」とすることで、改行されなくなる。
- 空行を出力する場合は、文字列指定なしでechoコマンドを実行する。
- echoコマンドの出力文字列は、引用符(一重・二重)で囲むこともできる。*2
- 特殊文字を出力する場合は、文字列を引用符(一重・二重)で囲み、特殊文字を「\」でエスケープする。(「\\」、「\n」、「\t」など) *3
#!/bin/sh # 通常 echo メッセージ # 改行しない echo -n あいう echo えお # 空行 echo # 引用符付き echo '一重引用符で囲まれた文字列' echo "二重引用符で囲まれた文字列" # 特殊文字のエスケープ (シェルによっては-eが必要) echo "ABC\tDEF" #echo -e "ABC\tDEF"
一時停止
- 一時停止には、readコマンドを使用する。
- 適当な変数に、入力を読み込む。
#!/bin/sh # 一時停止 echo -n "何かキーを押すと終了します..." read x
ユーザ入力
- readコマンドを使うことにより、ユーザが入力した文字列を変数にセットできる。
- ユーザにメッセージを表示する場合は、readコマンドの前にechoコマンドを実行する。
#!/bin/sh # ユーザ入力 echo -n "Yes or No? (y/n): " read yn # 入力値の判定 echo -n "答え: " if [ "${yn}" = "Y" -o "${yn}" = "y" ] then echo Yes else echo No fi
標準エラー出力
#!/bin/sh # 標準エラー出力 (1行) echo メッセージ1 1>&2 # 標準エラー出力 (複数行) ( echo メッセージ2 echo メッセージ3 echo メッセージ4 ) 1>&2