01 នៃ 08
ការណែនាំអ្នកចាប់ផ្តើមថ្មីដើម្បីបម្លែង - ប្រៀបធៀបរឿង
នៅក្នុងផ្នែកមុននៃការបង្រៀន BASH យើងបានមើល សេចក្តីថ្លែងការណ៍លក្ខខណ្ឌ ។
មគ្គុទេសក៍នោះមានរយៈពេលយូរប៉ុន្តែពិតជាបង្ហាញពីវិធីគ្រប់គ្រងលំហូរតក្កវិជ្ជា។ មគ្គុទេសក៍នេះបង្ហាញនូវវិធីផ្សេងគ្នាដែលអ្នកអាចប្រៀបធៀបអថេរ។
រូបភាពខាងលើបង្ហាញឧទាហរណ៏ដំបូងនៅក្នុងមគ្គុទ្ទេសក៍សប្តាហ៍នេះ:
#! / bin / bash
name1 = "gary"
name2 = "bob"បើ ["$ name1" = "$ name2"]
បន្ទាប់មក
អេកូ "ឈ្មោះត្រូវគ្នា"
ផ្សេង
អេកូ "ឈ្មោះមិនត្រូវគ្នា"
fi
ក្នុងស្គ្រីបខាងលើខ្ញុំបានកំណត់អថេរពីរដែលហៅឈ្មោះ 1 និងឈ្មោះ 2 ហើយបានផ្ដល់តម្លៃឱ្យពួកគេ "gary" និង "bob" ។ ក្នុងនាមជាអថេរដែលមានរវាងសញ្ញាសម្រង់ពួកវាត្រូវបានគេហៅអថេរខ្សែអក្សរដែលក្លាយទៅជាច្រើនទៀតពាក់ព័ន្ធនឹងការបង្រៀន។
ស្គ្រីបទាំងអស់ត្រូវបានប្រៀបធៀបតម្លៃនៃ $ name1 និង $ name2 ហើយប្រសិនបើពួកគេផ្គូផ្គងលទ្ធផលខ្សែអក្សរ "match names" ហើយប្រសិនបើពួកគេមិនបានបញ្ចេញខ្សែអក្សរ "ឈ្មោះមិនត្រូវគ្នា" ។
សញ្ញាសម្រង់ជុំវិញអថេរ $ name1 និង $ name2 គឺមានសារៈសំខាន់ពីព្រោះប្រសិនបើតម្លៃរបស់វាមិនត្រូវបានកំណត់នោះស្គ្រីបនឹងនៅតែដំណើរការ។
ឧទាហរណ៍ប្រសិនបើ $ name1 មិនត្រូវបានកំណត់នោះអ្នកនឹងប្រៀបធៀបជាមួយ "bob" ។ ដោយគ្មានសញ្ញាសម្រង់អ្នកនឹងត្រូវបានចាកចេញជាមួយ = "Bob" ដែលបរាជ័យយ៉ាងច្បាស់។
អ្នកក៏អាចប្រើកំណត់ចំណាំ = = notation ដើម្បីកំណត់មិនស្មើនឹងដូចខាងក្រោម:
ប្រសិនបើ ["$ name1"! = "$ name2"]
02 នៃ 08
ណែនាំមគ្គុទ្ទេសក៍ទៅ BASH - ការប្រៀបធៀបខ្សែអក្សរ
ក្នុងឧទាហរណ៍ខាងលើការធ្វើតេស្តនេះប្រៀបធៀបខ្សែពីរដូចគ្នាហើយសួរសំណួរថាហ្គែរីបានមកមុនពេលដែលគាត់សរសេរជាអក្សរឡាតាំងឬ?
ច្បាស់ណាស់ចម្លើយគឺទេ។
ស្គ្រីបណែនាំតិចជាងសញ្ញាប្រមាណវិធី (<) ។ ក្នុងនាមជាសញ្ញាប្រមាណវិធីតិចជាងត្រូវបានប្រើសម្រាប់ការប្ដូរទិសអ្នកត្រូវតែគេចវាដោយសញ្ញា (\) សម្រាប់វាមានន័យតិចជាងនេះដែលជាហេតុផលក្នុងស្គ្រីបខាងលើខ្ញុំបានប្រៀបធៀប "$ name1" \ "" $ name2 "។
ទល់មុខតិចជាងគឺពិតជាធំជាង។ ជំនួសឱ្យការប្រើ \ <ប្រើ \> ។
ឧទាហរណ៍
ប្រសិនបើ ["$ name1" \> "$ name2"]
03 នៃ 08
ណែនាំមគ្គុទ្ទេសក៍ទៅ BASH - ការប្រៀបធៀបខ្សែអក្សរ
ប្រសិនបើអ្នកចង់សាកល្បងថាតើអថេរមានតម្លៃអ្នកអាចប្រើការធ្វើតេស្តដូចតទៅ:
ប្រសិនបើ [-n $ name2]
ក្នុងស្គ្រីបខាងលើខ្ញុំបានសាកល្បងថាតើឈ្មោះ $ name2 ត្រូវបានផ្តល់តម្លៃហើយបើវាមិនមានសារ "មិនមានប៊ូបទេវាមិនដែលលេចឡើងទេ" ។
04 នៃ 08
ណែនាំមគ្គុទ្ទេសក៍ទៅ BASH - ការប្រៀបធៀបខ្សែអក្សរ
នៅលើស្លាយមុនយើងបានគ្របដណ្ដប់ថាតើអថេរត្រូវបានកំណត់ឬអត់។ ជួនកាលទោះបីជាអថេរអាចត្រូវបានកំណត់ប៉ុន្តែវាប្រហែលជាមិនមានតម្លៃ។
ឧទាហរណ៍:
ឈ្មោះ 1 = ""
ដើម្បីសាកល្បងថាតើអថេរមួយមានតម្លៃឬអត់ (មានប្រវែងសូន្យ) ប្រើ -z ដូចខាងក្រោម:
ប្រសិនបើ [-z $ name1]
ក្នុងស្គ្រីបខាងលើខ្ញុំបានកំណត់ $ name1 ទៅខ្សែសង្វាក់ប្រវែងសូន្យហើយបន្ទាប់មកប្រៀបធៀបវាដោយប្រើ -z ។ ប្រសិនបើ $ name1 សូន្យមានប្រវែងលេខសារ "gary បានចេញទៅក្រៅសម្រាប់ល្ងាច" នឹងត្រូវបានបង្ហាញ។
05 នៃ 08
ណែនាំមគ្គុទ្ទេសក៍ទៅជា BASH - ការប្រៀបធៀបលេខ
រហូតមកដល់ពេលនេះការប្រៀបធៀបទាំងអស់គឺសម្រាប់ខ្សែអក្សរ។ ចុះយ៉ាងណាបើប្រៀបធៀបលេខ?
ស្គ្រីបខាងលើបង្ហាញពីឧទាហរណ៍នៃការប្រៀបធៀបលេខពីរ:
#! / bin / bash
a = 4
b = 5បើ [$ a = $ b]
បន្ទាប់មក
អេកូ "4 = 5"
ផ្សេង
អេកូ "4 មិនស្មើ 5"
fi
ដើម្បីកំណត់អថេរជាលេខកំណត់វាដោយគ្មានសញ្ញាសម្រង់។ បន្ទាប់មកអ្នកអាចប្រៀបធៀបលេខជាមួយសញ្ញាស្មើ។
ខ្ញុំចូលចិត្តប្រើលេខរៀងដូចខាងក្រោមដើម្បីប្រៀបធៀបលេខទាំងពីរ:
បើ [$ a-eq $ b]
06 នៃ 08
ណែនាំមគ្គុទ្ទេសក៍ទៅជា BASH - ការប្រៀបធៀបលេខ
ប្រសិនបើអ្នកចង់ប្រៀបធៀបលេខតូចជាងលេខផ្សេងទៀតអ្នកអាចប្រើសញ្ញាប្រមាណវិធីតិចជាង (<) ។ ដូចទៅនឹងខ្សែអក្សរអ្នកត្រូវតែគេចផុតពីសញ្ញាតិចជាងសញ្ញាបូក។ (\ <) ។
វិធីល្អប្រសើរជាងក្នុងការប្រៀបធៀបលេខគឺប្រើលេខកូដដូចខាងក្រោមជំនួសវិញ:
- តិចជាង -lt
- តិចជាងឬស្មើនឹង - ឡ
- ធំជាង -gt
- ធំជាងឬស្មើនឹង -ge
ឧទាហរណ៍:
បើ [$ a -lt $ b]
បើ [$ a -le $ b]
បើ [$ a -ge $ b]
បើ [$ a-gt $ b]
07 នៃ 08
ណែនាំមគ្គុទ្ទេសក៍ទៅជា BASH - ការប្រៀបធៀបលេខ
ចុងបញ្ចប់សម្រាប់មគ្គុទ្ទេសក៍នេះប្រសិនបើអ្នកចង់សាកល្បងថាតើលេខទាំងពីរខុសគ្នាអ្នកអាចប្រើសញ្ញាតូចជាងនិងធំជាងរួមគ្នា (<>) ឬ -ne ដូចខាងក្រោម:
ប្រសិនបើ [$ a <> $ b]
បើ [$ a -ne $ b]
08 នៃ 08
មគ្គុទ្ទេសក៍អ្នកណែនាំដើមដល់ BASH - ការប្រៀបធៀបប្រតិបត្តិករ - សេចក្តីសង្ខេប
ប្រសិនបើអ្នកខកខាននូវបីផ្នែកដំបូងនៃមគ្គុទ្ទេសក៍នេះអ្នកអាចរកឃើញដោយចុចលើតំណខាងក្រោម:
នៅផ្នែកបន្ទាប់នៃមគ្គុទ្ទេសក៍ខ្ញុំនឹងគ្របដណ្តប់នព្វន្ធ។