របៀបនិងហេតុអ្វីអ្នកប្រើស៊េរី $ SHLVL

អថេរ $ 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 បើទោះបីជាអ្នកប្រើពាក្យបញ្ជានាំចេញមិនមានផលប៉ះពាល់ដល់សែលមេរបស់វាក៏ដោយ។

សង្ឃឹមថាពីនេះអ្នកអាចឃើញថាការដឹងពីកម្រិតសែលដែលអ្នកកំពុងធ្វើមានសារៈសំខាន់ខ្លះនៅពេលសរសេរស្គ្រីប។

ឧទាហរណ៍ដែលខ្ញុំបានផ្ដល់គឺសាមញ្ញណាស់ប៉ុន្តែវាជារឿងសាមញ្ញណាស់សម្រាប់ស្គ្រីបសែលមួយដើម្បីហៅស្គ្រីបស្គ្រីបមួយទៀតដែលបន្ទាប់មកហៅស្គ្រីបសែលមួយទៀតដែលពួកគេទាំងអស់កំពុងដំណើរការនៅកម្រិតផ្សេងៗគ្នា។ ដោយដឹងថាកម្រិតសែលអាចមានសារៈសំខាន់ណាស់។