मामला
In खूब जोर से पीटना, बहुविकल्पीय यौगिक कमांड को कहा जाता है मामला. इसमें निम्नलिखित सिन-टैक्स है:
मामला शब्द in
[पैटर्न [| पैटर्न]...) आज्ञाओं ;;]...
esac
अगर हम देखें पढ़ें-मेनू अध्याय 28 से प्रोग्राम में, हम उपयोगकर्ता के चयन पर कार्य करने के लिए प्रयुक्त तर्क देखते हैं:
#! / Bin / bash
# रीड-मेनू: एक मेनू संचालित सिस्टम सूचना कार्यक्रम स्पष्ट
प्रतिध्वनि"
कृपया चयन कीजिए:
1. सिस्टम जानकारी प्रदर्शित करें
2. डिस्क स्थान प्रदर्शित करें
3. गृह स्थान उपयोग प्रदर्शित करें
0. छोड़ो"
पढ़ें -p "चयन दर्ज करें [0-3] > "
यदि [[ $उत्तर =~ ^[0-3]$ ]]; फिर यदि [[ $उत्तर == 0 ]]; तब
#! / Bin / bash
# रीड-मेनू: एक मेनू संचालित सिस्टम सूचना कार्यक्रम स्पष्ट
प्रतिध्वनि"
कृपया चयन कीजिए:
1. सिस्टम जानकारी प्रदर्शित करें
2. डिस्क स्थान प्रदर्शित करें
3. गृह स्थान उपयोग प्रदर्शित करें
0. छोड़ो"
पढ़ें -p "चयन दर्ज करें [0-3] > "
यदि [[ $उत्तर =~ ^[0-3]$ ]]; फिर यदि [[ $उत्तर == 0 ]]; तब
प्रतिध्वनि "कार्यक्रम समाप्त हो गया।" बाहर निकलना
fi
यदि [[ $उत्तर == 1 ]]; फिर "होस्टनाम: $HOSTNAME" अपटाइम को प्रतिध्वनित करें
निकास
fi
यदि [[ $उत्तर == 2 ]]; फिर डीएफ -एच
निकास
fi
यदि [[ $उत्तर == 3 ]]; तब
यदि [[ $(id -u) -eq 0 ]]; तब
इको "होम स्पेस यूटिलाइजेशन (सभी उपयोगकर्ता)" du -sh /home/*
अन्य
इको "होम स्पेस यूटिलाइजेशन ($USER)" डु -श $HOME
फाई निकास
फाई अन्य
प्रतिध्वनि "अमान्य प्रविष्टि।" >&2 निकास 1
fi
प्रतिध्वनि "कार्यक्रम समाप्त हो गया।" बाहर निकलना
fi
यदि [[ $उत्तर == 1 ]]; फिर "होस्टनाम: $HOSTNAME" अपटाइम को प्रतिध्वनित करें
निकास
fi
यदि [[ $उत्तर == 2 ]]; फिर डीएफ -एच
निकास
fi
यदि [[ $उत्तर == 3 ]]; तब
यदि [[ $(id -u) -eq 0 ]]; तब
इको "होम स्पेस यूटिलाइजेशन (सभी उपयोगकर्ता)" du -sh /home/*
अन्य
इको "होम स्पेस यूटिलाइजेशन ($USER)" डु -श $HOME
फाई निकास
फाई अन्य
प्रतिध्वनि "अमान्य प्रविष्टि।" >&2 निकास 1
fi
का प्रयोग मामला, हम इस तर्क को किसी सरल चीज़ से बदल सकते हैं:
#! / Bin / bash
# केस-मेनू: एक मेनू संचालित सिस्टम सूचना कार्यक्रम स्पष्ट
प्रतिध्वनि"
कृपया चयन कीजिए:
1. सिस्टम जानकारी प्रदर्शित करें
2. डिस्क स्थान प्रदर्शित करें
3. गृह स्थान उपयोग प्रदर्शित करें
0. छोड़ो"
पढ़ें -p "चयन दर्ज करें [0-3] > "
केस $रिप्लाई में
0) प्रतिध्वनि "कार्यक्रम समाप्त हो गया।" बाहर निकलना
;;
#! / Bin / bash
# केस-मेनू: एक मेनू संचालित सिस्टम सूचना कार्यक्रम स्पष्ट
प्रतिध्वनि"
कृपया चयन कीजिए:
1. सिस्टम जानकारी प्रदर्शित करें
2. डिस्क स्थान प्रदर्शित करें
3. गृह स्थान उपयोग प्रदर्शित करें
0. छोड़ो"
पढ़ें -p "चयन दर्ज करें [0-3] > "
केस $रिप्लाई में
0) प्रतिध्वनि "कार्यक्रम समाप्त हो गया।" बाहर निकलना
;;
1) इको "होस्टनाम: $HOSTNAME" अपटाइम
;;
2) डीएफ -एच
;;
3) यदि [[ $(id -u) -eq 0 ]]; तब
इको "होम स्पेस यूटिलाइजेशन (सभी उपयोगकर्ता)" du -sh /home/*
अन्य
इको "होम स्पेस यूटिलाइजेशन ($USER)" डु -श $HOME
fi
;;
*) प्रतिध्वनि "अमान्य प्रविष्टि" >&2 निकास 1
;;
esac
1) इको "होस्टनाम: $HOSTNAME" अपटाइम
;;
2) डीएफ -एच
;;
3) यदि [[ $(id -u) -eq 0 ]]; तब
इको "होम स्पेस यूटिलाइजेशन (सभी उपयोगकर्ता)" du -sh /home/*
अन्य
इको "होम स्पेस यूटिलाइजेशन ($USER)" डु -श $HOME
fi
;;
*) प्रतिध्वनि "अमान्य प्रविष्टि" >&2 निकास 1
;;
esac
RSI मामला कमांड का मूल्य देखता है शब्द, हमारे उदाहरण में, का मान जवाब दें वैरिएबल, और फिर इसे निर्दिष्ट में से किसी एक के विरुद्ध मिलान करने का प्रयास करता है पैटर्न उपयोग करें. जब कोई मेल मिल जाता है, तो आज्ञाओं निर्दिष्ट पैटर्न से संबद्ध निष्पादित किए जाते हैं। एक मिलान मिल जाने के बाद, आगे कोई मिलान करने का प्रयास नहीं किया जाता है।