「シェルスクリプトの基礎 - 条件分岐」の版間の差分

📢 Webサイト閉鎖と移転のお知らせ
このWebサイトは2026年9月に閉鎖いたします。
新しい記事は移転先で追加しております。(旧サイトでは記事を追加しておりません)

編集の要約なし
158行目: 158行目:
| 条件式1 -o 条件式2 || 条件式1か2のどちらかが真なら真(OR)
| 条件式1 -o 条件式2 || 条件式1か2のどちらかが真なら真(OR)
|}
|}
</center>
<br><br>
== case文 ==
===== 条件の指定について =====
条件の指定にはワイルドカードを使用することができる。<br>
* すべての文字列にマッチ
? 何か1文字にマッチ
???  : 何か3文字の文字列にマッチ
???* : 3文字以上の文字列にマッチ
[ ] []に囲まれた文字や数字等のどれかにマッチ
[! ] []囲まれていない文字や数字等のどれかにマッチするのにマッチ
[ - ] 「-」で設定された範囲の文字や数字にマッチ
'''注意'''
OR条件を使用する場合は、条件1 | 条件2と指定することで、複数の条件をまとめて指定することができる。
*自体をマッチさせる場合は、\*、"*"、'*'とエスケープする。
?自体をマッチさせる場合は、\?、"?"、'?'とエスケープする。
'''使用例'''
abc*    : abcで始まる文字列にマッチ
a*bc    : aで始まり、bcで終わる文字列すべてにマッチ
a?c      : 最初が「a」で始まり最後が「c」で終わる3文字の文字列にマッチ
[ ]      : []に囲まれた文字や数字等のどれかにマッチ
[Aa]    : Aまたはaにマッチ
[Aa][Bb] : AB、Ab、aB、abにマッチ
[! ]    : []に囲まれていない文字や数字等のどれかにマッチ
[!Aa]    : 「A」と「a」以外にマッチ
[a-z]    : アルファベットの小文字にマッチ
[A-Z]    : アルファベット大文字にマッチ
[a-zA-Z] : アルファベットの小文字と大文字にマッチ
[0-9]    : 数字の0から9にマッチ
ABC | abc : 「ABC」か「abc」のどちらかにマッチ
<br>
===== サンプルコード =====
入力したキーによって、アルファベット、数字、その他の判別を行いメッセージを表示するシェルスクリプトを記述する。<br>
Tを入力すると、[a-zA-Z]の条件にマッチするので、Alphabet enteredと表示される。<br>
0を入力すると、[0-9]の条件にマッチするので、Number enteredと表示される。<br>
アルファベットや数字以外の文字を入力すると、*の条件にマッチするので、No alphabet or number enterdと表示される。<br>
<source lang="sh">
#!/bin/bash
echo 'Please input alphabet or number'
read key
case "$key" in
    [a-zA-Z])  echo 'Alphabet entered' ;;
    [0-9])    echo 'Number entered' ;;
    *)        echo 'No alphabet or number enterd' ;;
esac
</source>
<br><br>
<br><br>


__FORCETOC__
__FORCETOC__
[[カテゴリ:シェルスクリプト]]
[[カテゴリ:シェルスクリプト]]