ពាក្យបញ្ជាសាកល្បងអាចត្រូវបានប្រើនៅលើបន្ទាត់ពាក្យបញ្ជាលីនុចដើម្បីប្រៀបធៀបធាតុមួយទៅនឹងមួយផ្សេងទៀតប៉ុន្តែវាត្រូវបានប្រើជាទូទៅក្នុង ស្គ្រីបសែល BASH ដែល ជាផ្នែកមួយនៃ សេចក្តីថ្លែងការណ៍លក្ខខណ្ឌ ដែលគ្រប់គ្រង logic និងលំហូរកម្មវិធី។
ឧទាហរណ៍ជាមូលដ្ឋាន
អ្នកអាចសាកល្បងពាក្យបញ្ជាទាំងនេះដោយ បើកបង្អួចស្ថានីយមួយ ។
សាកល្បង 1-eq 2 & echo "បាទ / ចាស" || អេកូ "ទេ"
ពាក្យបញ្ជាខាងលើអាចត្រូវបានបំបែកដូចខាងក្រោម:
- ការធ្វើតេស្ត - នេះមានន័យថាអ្នករៀបនឹងធ្វើការប្រៀបធៀប
- 1 - ធាតុទីមួយដែលអ្នកនឹងប្រៀបធៀប
- -eq (តើអ្នកប្រៀបធៀបយ៉ាងណាក្នុងករណីនេះអ្នកកំពុងធ្វើតេស្តថាតើលេខមួយស្មើឬទេ)
- 2 - ធាតុដែលអ្នកកំពុងប្រៀបធៀបធាតុដំបូងម្តងទៀត
- && - រត់សេចក្តីថ្លែងការណ៍ដូចខាងក្រោមប្រសិនបើលទ្ធផលពិត
- អេកូ "បាទ / ចាស" - ពាក្យបញ្ជាដើម្បីដំណើរការបើការប្រៀបធៀបត្រឡប់ពិត
- || - រត់សេចក្តីថ្លែងការណ៍ដូចខាងក្រោមប្រសិនបើលទ្ធផលមិនពិត
- អេកូ "ទេ" - ពាក្យបញ្ជាដើម្បីដំណើរការប្រសិនបើការប្រៀបធៀបត្រឡប់ខុស
ជាទូទៅពាក្យបញ្ជាកំពុងប្រៀបធៀប 1 ទៅ 2 ហើយវាផ្គូផ្គងអេកូ "បាទ / ចាស" ត្រូវបានប្រតិបត្តិដែលបង្ហាញ "បាទ / ចាស" ហើយប្រសិនបើវាមិនផ្គូផ្គងអេកូ "គ្មាន" ត្រូវបានប្រតិបត្តិដែលបង្ហាញ "ទេ" ។
ប្រៀបធៀបលេខ
ប្រសិនបើអ្នកប្រៀបធៀបធាតុដែលញែកជាលេខអ្នកអាចប្រើការប្រៀបធៀបការប្រៀបធៀបដូចខាងក្រោម:
- -eq - do តម្លៃ 1 តម្លៃស្មើ 2
- -ge - គឺតម្លៃ 1 ធំជាងឬស្មើនឹងតម្លៃ 2
- - gt - គឺតម្លៃ 1 ធំជាងតម្លៃ 2
- - a - គឺតម្លៃ 1 តូចជាងឬស្មើនឹងតម្លៃ 2
- - lt - គឺតម្លៃ 1 តិចជាងតម្លៃ 2
- - a - do តម្លៃ 1 មិនស្មើ 2
ឧទាហរណ៍:
សាកល្បង 1-eq 2 & echo "បាទ / ចាស" || អេកូ "ទេ"
(បង្ហាញ "ទេ" ចំពោះអេក្រង់ពីព្រោះ 1 មិនស្មើ 2)
សាកល្បង 1 -ge 2 & echo "បាទ / ចាស" || អេកូ "ទេ"
(បង្ហាញ "ទេ" ចំពោះអេក្រង់ពីព្រោះ 1 មិនធំជាងឬស្មើ 2)
សាកល្បង 1 -gt 2 & & echo "បាទ / ចាស" || អេកូ "ទេ"
(បង្ហាញ "ទេ" ចំពោះអេក្រង់ពីព្រោះ 1 មិនធំជាង 2)
សាកល្បង 1 -le 2 & & echo "បាទ / ចាស" || អេកូ "ទេ"
(បង្ហាញ "បាទ / ចាស" ទៅអេក្រង់ពីព្រោះលេខ 1 តិចជាងឬស្មើ 2)
សាកល្បង 1 -lt 2 & & echo "បាទ / ចាស" || អេកូ "ទេ"
(បង្ហាញ "បាទ / ចាស" ទៅអេក្រង់ពីព្រោះលេខ 1 តិចជាងឬស្មើ 2)
សាកល្បង 1 -ne 2 & echo "បាទ / ចាស" || អេកូ "ទេ"
(បង្ហាញ "បាទ / ចាស" ទៅអេក្រង់ពីព្រោះលេខ 1 មិនស្មើ 2)
ប្រៀបធៀបអត្ថបទ
ប្រសិនបើអ្នកកំពុងប្រៀបធៀបធាតុដែលញែកជាខ្សែអក្សរអ្នកអាចប្រើការប្រៀបធៀបការប្រៀបធៀបដូចខាងក្រោម:
- = - ខ្សែអក្សរផ្គូផ្គងខ្សែអក្សរ 1
- ! = - គឺជាខ្សែអក្សរ 1 ខុសពីខ្សែអក្សរទី 2
- - n - ប្រវែងខ្សែអក្សរធំជាង 0
- -z - គឺជាប្រវែងខ្សែអក្សរ 0
ឧទាហរណ៍:
សាកល្បង "string1" = "string2" && echo "yes" || អេកូ "ទេ"
(បង្ហាញ "ទេ" ចំពោះអេក្រង់ពីព្រោះ "string1" មិនស្មើ "string2")
សាកល្បង "string1"! = "string2" & & echo "yes" || អេកូ "ទេ"
(បង្ហាញ "បាទ / ចាស" ទៅអេក្រង់ពីព្រោះ "string1" មិនស្មើ "string2")
test -n "string1" & & echo "yes" || អេកូ "ទេ"
(បង្ហាញ "បាទ / ចាស" ទៅអេក្រង់ពីព្រោះ "string1" មានប្រវែងវែងជាងសូន្យ)
សាកល្បង -z "string1" & & echo "បាទ / ចាស" || អេកូ "ទេ"
(បង្ហាញ "ទេ" ទៅអេក្រង់ពីព្រោះ "string1" មានប្រវែងវែងជាងខ្សែសូន្យ)
ប្រៀបធៀបឯកសារ
ប្រសិនបើអ្នកប្រៀបធៀបឯកសារអ្នកអាចប្រើការប្រៀបធៀបការប្រៀបធៀបដូចខាងក្រោម:
- -ef - តើឯកសារមានលេខដូចគ្នានិងលេខអាយណូត (តើពួកគេមានឯកសារដូចគ្នា)
- -nt - តើឯកសារដំបូងគេថ្មីជាងឯកសារទីពីរ
- --ot - ឯកសារដំបូងដែលចាស់ជាងឯកសារទីពីរ
- - b - ឯកសារមានស្រាប់ហើយប្លុកពិសេស
- -c - ឯកសារមានហើយវាមានលក្ខណៈពិសេស
- -d - ឯកសារមានហើយជាថត
- -e- ឯកសារមាន
- -f - ឯកសារមានហើយវាជាឯកសារធម្មតា
- -g - ឯកសារមានហើយមានលេខក្រុម
- -G - ឯកសារមាននិងម្ចាស់ដោយក្រុមអ្នកប្រើ
- - h - ឯកសារមានហើយ ជាតំណនិមិត្តសញ្ញា
- -k - ឯកសារមានស្រាប់ហើយមានសំណុំតូចស្អិត
- -L - ដូចគ្នានឹង - ម៉ោង
- -O - ឯកសារមានអ្នកជាម្ចាស់
- -p - ឯកសារមានហើយជាបំពង់ឈ្មោះ
- -r - ឯកសារមានហើយវាអាចអានបាន
- -s - ឯកសារមានហើយមានទំហំធំជាងសូន្យ
- -S - ឯកសារមានហើយវាជារន្ធមួយ
- - t - កម្មវិធីពិពណ៌នាឯកសារត្រូវបានបើកនៅលើស្ថានីយ
- -u - ឯកសារមានហើយសំណុំ set-user-id ត្រូវបានកំណត់
- - w - មានឯកសារហើយអាចសរសេរបាន
- -x - ឯកសារមានហើយវាអាចប្រតិបត្តិបាន
ឧទាហរណ៍:
សាកល្បង / ផ្លូវ / ទៅ / file1-n / path / ទៅ / file2 & echo "បាទ / ចាស"
(ប្រសិនបើឯកសារ 1 ថ្មីជាងឯកសារ 2 បន្ទាប់មកពាក្យ "បាទ / ចាស" នឹងត្រូវបានបង្ហាញ)
សាកល្បង -e / ផ្លូវ / ទៅ / file1 & & echo "បាទ / ចាស"
(ប្រសិនបើឯកសារ 1 មានពាក្យ "បាទ / ចាស" នឹងត្រូវបានបង្ហាញ)
សាកល្បង - អូ / ផ្លូវ / ទៅ / file1 & & echo "បាទ / ចាស"
(ប្រសិនបើអ្នកជាម្ចាស់ឯកសារ 1 បន្ទាប់មកពាក្យ "បាទ" ត្រូវបានបង្ហាញ ")
ស័ព្ទ
- ប្លុកពិសេស - ឯកសារជាឧបករណ៍ប្លុកមួយដែលមានន័យថាទិន្នន័យត្រូវបានអានជាប្លុកបៃ។ ទាំងនេះគឺជាឯកសារឧបករណ៍ជាទូទៅដូចជាដ្រាយរឹង។
- តួអក្សរពិសេស - ឯកសារត្រូវបានចាត់វិធានការភ្លាមៗនៅពេលអ្នកសរសេរវាហើយជាទូទៅឧបករណ៍ដូចជាច្រកសៀរៀលជាដើម
ប្រៀបធៀបលក្ខខណ្ឌច្រើន
រហូតមកដល់ពេលនេះអ្វីគ្រប់យ៉ាងត្រូវបានគេប្រៀបធៀបរឿងមួយប្រឆាំងនឹងអ្នកដទៃប៉ុន្តែតើមានអ្វីប្រសិនបើអ្នកចង់ប្រៀបធៀបលក្ខខណ្ឌពីរ។
ឧទាហរណ៍ប្រសិនបើសត្វមួយមានជើង 4 ហើយទៅ "moo" វាប្រហែលជាគោ។ គ្រាន់តែត្រួតពិនិត្យ 4 ជើងមិនធានាថាអ្នកមានគោទេប៉ុន្តែពិនិត្យមើលសម្លេងដែលវាធ្វើពិតជាប្រាកដមែន។
ដើម្បីសាកល្បងលក្ខខណ្ឌទាំងពីរនៅពេលតែមួយប្រើសេចក្តីថ្លែងការណ៍ដូចខាងក្រោម:
សាកល្បង 4-eq 4 -a "moo" = "moo" & & echo "វាគឺគោ" || អេកូ "វាមិនមែនជាគោ"
ផ្នែកសំខាន់នៅទីនេះគឺ - a តំណាងឱ្យនិង។
មានមធ្យោបាយប្រសើរជាងមុននិងប្រើច្រើនជាងនេះដើម្បីធ្វើតេស្តដូចគ្នានឹង:
សាកល្បង 4 -eq 4 && សាកល្បង "moo" = "moo" & & echo "វាគឺគោ" || អេកូ "វាមិនមែនជាគោ"
ការធ្វើតេស្តមួយផ្សេងទៀតដែលអ្នកចង់បង្កើតគឺប្រៀបធៀបសេចក្តីថ្លែងពីរហើយប្រសិនបើលទ្ធផលពិតជាខ្សែអក្សរ។ ឧទាហរណ៍ប្រសិនបើអ្នកចង់ពិនិត្យមើលថាមានឯកសារឈ្មោះ "file1.txt" ឬឯកសារដែលមានឈ្មោះថា "file1.doc" មានអ្នកអាចប្រើពាក្យបញ្ជាដូចខាងក្រោម:
សាកល្បង -e file1.txt -o-e file1.doc && echo "file1 exist" || អេកូ "file1 មិនមាន"
ផ្នែកសំខាន់នៅទីនេះគឺ -o ដែលតំណាងឱ្យឬ។
មានមធ្យោបាយប្រសើរជាងមុននិងប្រើច្រើនជាងនេះដើម្បីធ្វើតេស្តដូចគ្នានឹង:
សាកល្បង -e file1.txt || សាកល្បង - e ឯកសារ 1 ។ ឯកសារ & echo "file1 មាន" || អេកូ "file1 មិនមាន"
លុបបំបាត់ពាក្យគន្លឹះសាកល្បង
អ្នកមិនចាំបាច់ប្រើតេស្តពាក្យដើម្បីធ្វើការប្រៀបធៀបទេ។ អ្វីដែលអ្នកត្រូវធ្វើគឺភ្ជាប់សេចក្តីថ្លែងការណ៍នៅក្នុងតង្កៀបជ្រុងដូចខាងក្រោម:
[-e file1.txt] & echo "file1 មាន" || អេកូ "file1 មិនមាន"
[ហើយ] ជាមូលដ្ឋានមានន័យដូចគ្នានឹងការធ្វើតេស្ត។
ឥឡូវអ្នកដឹងពីនេះអ្នកអាចកែលម្អលើការប្រៀបធៀបលក្ខខណ្ឌជាច្រើនដូចខាងក្រោម:
[4 -eq 4] && ["moo" = "moo"] & & echo "វាគឺគោ" || អេកូ "វាមិនមែនជាគោ"
[-e file1.txt] || [-e ឯកសារ 1..doc] & echo "file1 មាន" || អេកូ "file1 មិនមាន"
សង្ខេប
ពាក្យបញ្ជាការធ្វើតេស្តគឺមានប្រយោជន៍បន្ថែមទៀតនៅក្នុងស្គ្រីបព្រោះអ្នកអាចសាកល្បងតម្លៃនៃអថេរមួយប្រឆាំងនឹងមួយផ្សេងទៀតនិងត្រួតពិនិត្យលំហូរកម្មវិធី។ នៅលើបន្ទាត់ពាក្យបញ្ជាស្តង់ដារអ្នកអាចប្រើវាដើម្បីសាកល្បងថាតើឯកសារមានឬអត់