អថេរ $ SHLVL ត្រូវបានប្រើដើម្បីប្រាប់អ្នកថាតើសែលមានចំនួនប៉ុន្មាន។ ប្រសិនបើអ្នកមានការយល់ច្រឡំពីរឿងនេះវាមានតម្លៃចាប់ផ្តើមពីដំបូង។
តើសែលជាអ្វី?
សែលត្រូវការពាក្យបញ្ជាហើយផ្តល់ឱ្យពួកគេនូវប្រព័ន្ធប្រតិបត្តិការមូលដ្ឋានដើម្បីអនុវត្ត។ នៅលើប្រព័ន្ធលីនុចភាគច្រើនកម្មវិធីសែលត្រូវបានគេហៅថា BASH (កម្មវិធី Bourne Again Shell) ប៉ុន្តែមានផ្សេងទៀតដែលមានរួមមាន C Shell (tcsh) និង KORN shell (ksh) ។
របៀបចូលប្រើ Linux Shell
ជាទូទៅក្នុងនាមជាអ្នកប្រើអ្នកទាក់ទងជាមួយកម្មវិធីសែលតាមរយៈការប្រើកម្មវិធី ត្រាប់តាមស្ថានីយ ដូចជា XTerm កុងសូលឬ gnome-terminal ។
ប្រសិនបើអ្នកកំពុងបើកកម្មវិធីគ្រប់គ្រងបង្អួចដូចជា Openbox ឬបរិស្ថានផ្ទៃតុដូចជា GNOME ឬ KDE អ្នកនឹងស្វែងរកវត្ថុត្រាប់តាមស្ថានីយពីម៉ឺនុយឬសញ្ញា។ នៅលើប្រព័ន្ធជាច្រើនផ្លូវកាត់ CTRL ALT និង T នឹងបើកបង្អួចស្ថានីយផងដែរ។
ជាជម្រើសអ្នកអាចប្ដូរទៅ tty ផ្សេងទៀត (teletypewriter) ដែលផ្តល់នូវការចូលដំណើរការដោយផ្ទាល់ទៅបន្ទាត់សែលបញ្ជា។ អ្នកអាចធ្វើដូច្នេះដោយចុច CTRL ALT និង F1 ឬ CTRL ALT និង F2 ។ ល។
កម្រិតសែលគឺជាអ្វី
ពេលអ្នករត់ពាក្យបញ្ជានៅក្នុងសែលវារត់នៅអ្វីដែលហៅថាកម្រិតសែល។ នៅក្នុងសែលអ្នកអាចបើកសែលមួយផ្សេងទៀតដែលធ្វើឱ្យវាជា subshell ឬសែលដែលបានបើកវា។
ដូច្នេះសែលមេនឹងត្រូវបានគេចាត់ទុកថាប្រហែលជាកម្រិត 1 សែលនិងសែលកូននឹងជាកម្រិត 2 សែល។
របៀបបង្ហាញកម្រិតសែល
វាគួរតែមានភាពភ្ញាក់ផ្អើលដោយផ្អែកលើចំណងជើងនៃអត្ថបទដែលអ្នកអាចប្រាប់ថាកម្រិតសែលណាមួយដែលអ្នកកំពុងដំណើរការគឺដោយប្រើអថេរ $ SHLVL ។
ដើម្បីមើលកម្រិតសែលដែលអ្នកកំពុងរត់ក្នុងប្រភេទដូចខាងក្រោម:
អេកូ $ SHLVL
គួរឱ្យចាប់អារម្មណ៍ជាងនេះប្រសិនបើអ្នកដំណើរការពាក្យបញ្ជាខាងលើនៅក្នុងបង្អួចស្ថានីយមួយអ្នកប្រហែលជាភ្ញាក់ផ្អើលដែលឃើញថាលទ្ធផលត្រូវបានត្រឡប់ 2 ។
ប្រសិនបើអ្នករត់ពាក្យបញ្ជាដូចគ្នាដោយប្រើ tty បន្ទាប់មកលទ្ធផលគឺ 1 ។
ហេតុអ្វីបានជានេះជាករណីដែលអ្នកអាចសួរ? ផងដែរបរិស្ថានផ្ទៃតុដែលអ្នកកំពុងរត់កំពុងត្រូវបានរត់នៅលើកំពូលនៃសែលមួយ។ សែលនោះគឺកម្រិត 1 ។ បង្អួចស្ថានីយដែលអ្នកបើកពីក្នុងបរិស្ថានផ្ទៃតុនោះត្រូវតែជាកូនរបស់សែលដែលបានបើកបរិស្ថានផ្ទៃតុហើយដូច្នេះកម្រិតសែលមិនអាចចាប់ផ្ដើមនៅលេខណាមួយក្រៅពីលេខ 2 បានទេ។
tty មិនដំណើរការបរិស្ថានផ្ទៃតុហើយដូច្នេះគ្រាន់តែជាកម្រិត 1 សែល។
របៀបបង្កើតកូនសោរ
មធ្យោបាយងាយស្រួលបំផុតដើម្បីសាកល្បងគំនិតនៃសែលនិងកូនសោគឺមានដូចខាងក្រោម។ បើកបង្អួចស្ថានីយហើយវាយបញ្ចូលដូចខាងក្រោម:
អេកូ $ SHLVL
ដូចដែលយើងដឹងពីបង្អួចស្ថានីយកំរិតសែលអប្បបរមាគឺ 2 ។
ឥឡូវនេះនៅក្នុងបង្អួចស្ថានីយវាយបញ្ចូលដូចខាងក្រោម:
sh
ពាក្យបញ្ជា sh នៅលើខ្លួនវារត់សែលអន្តរសកម្មដែលមានន័យថាអ្នកកំពុងប្រើសែលនៅក្នុងសែលឬសំណុំរងមួយ។
ប្រសិនបើអ្នកវាយវាម្ដងទៀត:
អេកូ $ SHLVL
អ្នកនឹងឃើញថាកំរិតសែលត្រូវបានកំណត់ទៅ 3 ។ ការរត់ពាក្យបញ្ជា sh ពីក្នុង subhell នឹងបើក subhell នៃ subhell ហើយដូច្នេះកម្រិតសែលនឹងស្ថិតនៅកម្រិតទី 4 ។
ហេតុអ្វីបានជាសែលមានសារៈសំខាន់?
កម្រិតសែលគឺមានសារៈសំខាន់នៅពេលគិតអំពីទំហំនៃអថេរក្នុងស្គ្រីបរបស់អ្នក។
ចូរចាប់ផ្តើមជាមួយអ្វីដែលសាមញ្ញ:
ឆ្កែ = ទេ
echo $ dog
ប្រសិនបើអ្នកដំណើរការពាក្យបញ្ជាខាងលើនៅក្នុងសែលពាក្យដែលនឹងត្រូវបានបង្ហាញទៅបង្អួចស្ថានីយ។
បើកសែលថ្មីមួយដោយវាយដូចខាងក្រោម:
sh
បើអ្នករត់ពាក្យបញ្ជានេះអ្នកនឹងឃើញថាគ្មានអ្វីត្រូវបានត្រឡប់មកវិញទេ:
echo $ dog
នោះគឺដោយសារតែអថេរ $ dog មានតែនៅកម្រិតសែលប៉ុណ្ណោះ។ បើអ្នកវាយចេញដើម្បីចេញពី subshell ហើយរត់ echo $ dog ម្ដងទៀតពាក្យ word នឹងត្រូវបានបង្ហាញម្តងទៀត។
វាក៏មានតម្លៃគិតអំពីឥរិយាបថនៃអថេរសកលនៅក្នុងសែល។
ចាប់ផ្តើមនៅក្នុងបង្អួចស្ថានីយថ្មីហើយវាយបញ្ចូលដូចខាងក្រោម:
នាំចេញឆ្កែ = maisie
echo $ dog
ដូចដែលអ្នកអាចរំពឹងថាពាក្យ soitie ត្រូវបានបង្ហាញ។ ឥឡូវនេះបើក subhell មួយហើយវាយ echo $ dog ម្ដងទៀត។ ពេលនេះអ្នកនឹងឃើញថាពាក្យ desie ត្រូវបានបង្ហាញទោះបីជាអ្នកស្ថិតក្នុងកូនសោក៏ដោយ។
ហេតុផលសម្រាប់នេះគឺថាពាក្យបញ្ជានាំចេញបានធ្វើឱ្យសត្វឆ្កែអថេរសកល។ ការផ្លាស់ប្តូរអថេរ $ dog នៅក្នុង subshell បើទោះបីជាអ្នកប្រើពាក្យបញ្ជានាំចេញមិនមានផលប៉ះពាល់ដល់សែលមេរបស់វាក៏ដោយ។
សង្ឃឹមថាពីនេះអ្នកអាចឃើញថាការដឹងពីកម្រិតសែលដែលអ្នកកំពុងធ្វើមានសារៈសំខាន់ខ្លះនៅពេលសរសេរស្គ្រីប។
ឧទាហរណ៍ដែលខ្ញុំបានផ្ដល់គឺសាមញ្ញណាស់ប៉ុន្តែវាជារឿងសាមញ្ញណាស់សម្រាប់ស្គ្រីបសែលមួយដើម្បីហៅស្គ្រីបស្គ្រីបមួយទៀតដែលបន្ទាប់មកហៅស្គ្រីបសែលមួយទៀតដែលពួកគេទាំងអស់កំពុងដំណើរការនៅកម្រិតផ្សេងៗគ្នា។ ដោយដឹងថាកម្រិតសែលអាចមានសារៈសំខាន់ណាស់។