著者:大津 真
本連載ではシェルスクリプトの書き方をやさしく紹介します。対象とするシェルは、多くのLinuxディストリビューションが標準シェルとして採用する「Bash」です。第3回は、シェルスクリプトにおける条件分岐の使用方法を中心に解説します。
図1 シェルスクリプト「ping.sh」の内容
1 2 3 4 5 |
#!/bin/bash if ping -c1 192.168.0.2 > /dev/null then echo " 応答あり" fi |
図2 シェルスクリプト「secret1.sh」の内容
1 2 3 4 5 6 7 |
#!/bin/bash secret=" ひらけごま" echo -n " 合言葉は?: " read aikotoba if test $secret = $aikotoba; then echo " 正しい合言葉です!" fi |
図3 シェルスクリプト「secret2.sh」の内容
1 2 3 4 5 6 7 |
#!/bin/bash secret=" ひらけごま" echo -n " 合言葉は?: " read aikotoba if [[ $secret = $aikotoba ]]; then echo " 正しい合言葉です!" fi |
図4 シェルスクリプト「secret3.sh」の内容
1 2 3 4 5 6 7 8 9 |
#!/bin/bash secret=" ひらけごま" echo -n " 合言葉は?: " read aikotoba if [[ $secret = $aikotoba ]]; then echo " 正しい合言葉です!" else echo " 合言葉が間違っています" fi |
図5 平成年を西暦年に変換するシェルスクリプト「heiseiToSeireki.sh」
1 2 3 4 5 6 7 8 9 10 |
#!/bin/bash if [[ $# -eq 0 ]]; then echo " 平成年を指定してください" exit 1 fi if [[ "$1" -lt 1 || "$1" -gt 31 ]]; then echo "1〜31 までの数値を入力してください" exit 1 fi echo " 平成$1 年は西暦$(($1+1988)) 年" |
図6 指定したファイル中のコロンをカンマに変換するシェルスクリプト「colon_to_comma.sh」
1 2 3 4 |
#!/bin/bash fname=$1 cp "$fname" "${fname}~" tr ":" "," < "${fname}~" > "$fname" |
図7 引数チェック用のコードを追加した「colon_to_comma2.sh」
1 2 3 4 5 6 7 8 9 10 11 12 |
#!/bin/bash if [[ $# -eq 0 ]]; then echo " 引数でファイルを指定してください" exit 1 fi if [[ ! -f $1 ]]; then echo "$1 が見つかりません" exit 1 fi fname=$1 cp "$fname" "${fname}~" tr ":" "," < "${fname}~" > "$fname" |