ការណែនាំអ្នកចាប់ផ្តើមថ្មីដើម្បីបម្លែង - ប្រៀបធៀបរឿង

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 - ការប្រៀបធៀបលេខ

មេរៀនសិក្សា - ប្រៀបធៀបលេខ។

ប្រសិនបើអ្នកចង់ប្រៀបធៀបលេខតូចជាងលេខផ្សេងទៀតអ្នកអាចប្រើសញ្ញាប្រមាណវិធីតិចជាង (<) ។ ដូចទៅនឹងខ្សែអក្សរអ្នកត្រូវតែគេចផុតពីសញ្ញាតិចជាងសញ្ញាបូក។ (\ <) ។

វិធីល្អប្រសើរជាងក្នុងការប្រៀបធៀបលេខគឺប្រើលេខកូដដូចខាងក្រោមជំនួសវិញ:

ឧទាហរណ៍:

បើ [$ a -lt $ b]

បើ [$ a -le $ b]

បើ [$ a -ge $ b]

បើ [$ a-gt $ b]

07 នៃ 08

ណែនាំមគ្គុទ្ទេសក៍ទៅជា BASH - ការប្រៀបធៀបលេខ

មេរៀនសិក្សា - ប្រៀបធៀបលេខ។

ចុងបញ្ចប់សម្រាប់មគ្គុទ្ទេសក៍នេះប្រសិនបើអ្នកចង់សាកល្បងថាតើលេខទាំងពីរខុសគ្នាអ្នកអាចប្រើសញ្ញាតូចជាងនិងធំជាងរួមគ្នា (<>) ឬ -ne ដូចខាងក្រោម:

ប្រសិនបើ [$ a <> $ b]

បើ [$ a -ne $ b]

08 នៃ 08

មគ្គុទ្ទេសក៍អ្នកណែនាំដើមដល់ BASH - ការប្រៀបធៀបប្រតិបត្តិករ - សេចក្តីសង្ខេប

ប្រសិនបើអ្នកខកខាននូវបីផ្នែកដំបូងនៃមគ្គុទ្ទេសក៍នេះអ្នកអាចរកឃើញដោយចុចលើតំណខាងក្រោម:

នៅផ្នែកបន្ទាប់នៃមគ្គុទ្ទេសក៍ខ្ញុំនឹងគ្របដណ្តប់នព្វន្ធ។