🦖
シェルスクリプトの基礎⑦~case文~
はじめに
くーばねてすをやっつけるためにLinuxさんと仲良くさせていただいているが、Linuxさんにはシェルのコマンドを格納しておくシェルスクリプトというファイルがあるらしいのでそれをまとめてみた。
概要
■case文
をまとめた^^
case文とは
文字列がパターンにマッチするか判断し、マッチしたパターンに対してのみ処理を行う構文だ。
case文書式
case書式
case 文字列 in
パターン1)
処理
;;
パターン2)
処理
;;
esac
えざっく!?(>_<)えざっくって誰!?えがちゃん!?
※esacはcaseを逆にした意味で終わりって意味みたいです。
さっそくやってみる!
コマンドライン引数にファイル名を指定して.txtファイルだったらlessコマンドを実行、
.shファイルであればcatコマンドを実行、それ以外はサポート外ファイルですと表示させる。
ファイルの指定にワイルドカードを使う。
casefile.sh
$ cat casefile.sh
#! /bin/bash
case "$1" in
*.txt)
less "$@"
;;
*.sh)
cat "$@"
;;
*)
echo "サポート外ファイルです"
;;
esac
$ ./casefile.sh unko
サポート外ファイルです
できた!(>_<)ちなみに;;の位置は処理の行の処理の後ろにつけてもいいらしい。
case書式
case 文字列 in
パターン1)
処理 ;;
パターン2)
処理 ;;
esac
むしろ全部同じ行でもいいらしい('_')!
case書式
case 文字列 in
パターン1) 処理 ;;
パターン2) 処理 ;;
esac
case文はif文で1つ1つ比較するよりさらに文字列に対する処理に特化しており、たくさんの文字列に対する処理をするときに向いている。
またパターンの指定には|を使うこともできる。
#! /bin/bash
case "$1" in
start|stop) echo "OK" ;; (startまたはstopだった場合)
*) echo "NG" ;;
esac
文字列特化型なんだね!(@_@)
まとめ
今日は寒すぎてお外出れなかったんだけど、辛ラーメン煮て食べたら汁が目に飛んですごく目が痛くなったから、気を付けてね!
できれば眼鏡をかけて食べたほうがいいと思った。ゴマ油をかけると少しマイルドになるのかなって思う。
Discussion