លេខ 1 បង្ហាញពីលទ្ធផលស្តង់ដារ (stdout) ។ 2 បង្ហាញពីកំហុសស្តង់ដារ (stderr) ។ ដូច្នេះ 2>&1 និយាយថានឹងផ្ញើកំហុសស្តង់ដារទៅកន្លែងដែលលទ្ធផលស្តង់ដារត្រូវបានបញ្ជូនបន្តផងដែរ។
តើ 2 > & 1 មានន័យដូចម្តេច?
"អ្នកប្រើ &1 ដើម្បីយោងតម្លៃនៃឯកសារពិពណ៌នា 1 (stdout) ។ ដូច្នេះនៅពេលអ្នកប្រើ 2>&1 អ្នកនិយាយជាមូលដ្ឋានថា "ប្តូរទិស stderr ទៅកន្លែងដដែលដែលយើងកំពុងប្តូរទិស stdout" ។ ហើយនោះហើយជាមូលហេតុដែលយើងអាចធ្វើអ្វីមួយដូចនេះដើម្បីប្តូរទិសទាំង stdout និង stderr ទៅកន្លែងតែមួយ៖”
តើ 2 > & 1 មានន័យយ៉ាងណា ហើយជាទូទៅវាប្រើនៅពេលណា?
&1 ត្រូវបានប្រើដើម្បីយោងតម្លៃនៃឯកសារពណ៌នា 1 (stdout)។ ឥឡូវនេះដល់ចំណុច 2>&1 មានន័យថា "ប្តូរទិស stderr ទៅកន្លែងដដែលដែលយើងកំពុងប្តូរទិស stdout"
តើ $$ នៅក្នុង Linux គឺជាអ្វី?
$$ គឺជាលេខសម្គាល់ដំណើរការ (PID) នៃស្គ្រីបខ្លួនឯង។ $BASHPID គឺជាលេខសម្គាល់ដំណើរការនៃវត្ថុបច្ចុប្បន្នរបស់ Bash ។ នេះមិនដូចគ្នាទៅនឹងអថេរ $$ ទេ ប៉ុន្តែជារឿយៗវាផ្តល់លទ្ធផលដូចគ្នា។ https://unix.stackexchange.com/questions/291570/what-is-in-bash/291577#291577 ។ ចែករំលែក។
តើ 2 មានន័យយ៉ាងណានៅក្នុងលីនុច?
2 សំដៅទៅលើអ្នកពណ៌នាឯកសារទីពីរនៃដំណើរការ ពោលគឺ stderr ។ > មានន័យថា ប្តូរទិស។ &1 មានន័យថាគោលដៅនៃការបញ្ជូនបន្តគួរតែជាទីតាំងដូចគ្នានឹងអ្នកពណ៌នាឯកសារដំបូងដែរ ពោលគឺ stdout ។
តើ ១.៥ មានន័យថាមួយកន្លះកន្លះទេ?
ឃ្លាភាសាអង់គ្លេស "មួយពាក់កណ្តាល" មានន័យថាពាក់កណ្តាល - ក្នុងរយៈពេលខ្លី 0.5 នៅក្នុងតម្លៃ។ … មួយពាក់កណ្តាលគឺពាក់កណ្តាលមួយ ឬ 0.5 ។ មួយនិងកន្លះគឺ 1.5 ។
តើលេខ ២១១០ មានន័យអ្វីនៅក្នុងសារ?
ការបកស្រាយ។ "លាហើយ" ។ ខ្ញុំនឹងនិយាយជាមួយអ្នកនៅពេលក្រោយ។
តើខ្ញុំប្តូរទិស stderr យ៉ាងដូចម្តេច?
លទ្ធផលធម្មតាត្រូវបានផ្ញើទៅ Standard Out (STDOUT) ហើយសារកំហុសត្រូវបានផ្ញើទៅ Standard Error (STDERR)។ នៅពេលអ្នកប្តូរទិសទិន្នផលកុងសូលដោយប្រើនិមិត្តសញ្ញា > អ្នកកំពុងប្តូរទិស STDOUT ប៉ុណ្ណោះ។ ដើម្បីប្តូរទិស STDERR អ្នកត្រូវបញ្ជាក់ 2> សម្រាប់និមិត្តសញ្ញាប្តូរទិស។
តើអ្នកប្រើអ្វីដើម្បីបញ្ជូនកំហុសទៅឯកសារ?
ចម្លើយ 2
- បញ្ជូនបន្ត stdout ទៅកាន់ឯកសារមួយ ហើយ stderr ទៅឯកសារផ្សេងទៀត៖ ពាក្យបញ្ជា> ចេញ 2> កំហុស។
- ប្តូរទិស stdout ទៅឯកសារ (>out ) ហើយបន្ទាប់មកប្តូរទិស stderr ទៅ stdout ( 2>&1 ): command >out 2>&1 ។
$ ជាអ្វី? នៅ Bash?
$? គឺជាអថេរពិសេសមួយនៅក្នុង bash ដែលតែងតែមានលេខកូដត្រឡប់/ចេញនៃពាក្យបញ្ជាដែលបានប្រតិបត្តិចុងក្រោយ។ អ្នកអាចមើលវានៅក្នុងស្ថានីយដោយដំណើរការអេកូ $? . លេខកូដត្រឡប់គឺស្ថិតនៅក្នុងជួរ [0; ២៥៥]។ លេខកូដត្រឡប់នៃ 255 ជាធម្មតាមានន័យថាអ្វីគ្រប់យ៉ាងគឺយល់ព្រម។
តើអ្វីជា $1 នៅក្នុងលីនុច?
$1 គឺជាអាគុយម៉ង់បន្ទាត់ពាក្យបញ្ជាដំបូងដែលបានបញ្ជូនទៅស្គ្រីបសែល។ … $0 គឺជាឈ្មោះរបស់ស្គ្រីបខ្លួនវា (script.sh) $1 គឺជាអាគុយម៉ង់ទីមួយ (filename1) $2 គឺជាអាគុយម៉ង់ទីពីរ (dir1)
តើការប្រើប្រាស់លីនុចជាអ្វី?
នេះ '!' និមិត្តសញ្ញា ឬប្រតិបត្តិករក្នុង Linux អាចត្រូវបានប្រើជា Logical Negation operator ក៏ដូចជាដើម្បីទាញយកពាក្យបញ្ជាពីប្រវត្តិជាមួយនឹងការកែប្រែ ឬដំណើរការពាក្យបញ្ជាពីមុនជាមួយនឹងការកែប្រែ។
តើខ្ញុំដឹងពីសំបកបច្ចុប្បន្នរបស់ខ្ញុំដោយរបៀបណា?
របៀបពិនិត្យមើលថាតើសែលមួយណាដែលខ្ញុំកំពុងប្រើ៖ ប្រើពាក្យបញ្ជាលីនុច ឬយូនីកខាងក្រោម៖ ps -p $$ – បង្ហាញឈ្មោះសែលបច្ចុប្បន្នរបស់អ្នកដោយភាពជឿជាក់។ បន្ទរ “$ សែល” - បោះពុម្ពសែលសម្រាប់អ្នកប្រើប្រាស់បច្ចុប្បន្ន ប៉ុន្តែមិនចាំបាច់ជាសែលដែលកំពុងដំណើរការនៅចលនានោះទេ។
$ ជាអ្វី? នៅ Unix?
$? - ស្ថានភាពចេញនៃពាក្យបញ្ជាចុងក្រោយដែលបានប្រតិបត្តិ។ $0 - ឈ្មោះឯកសារនៃស្គ្រីបបច្ចុប្បន្ន។ $# -ចំនួនអាគុយម៉ង់ដែលបានផ្គត់ផ្គង់ទៅស្គ្រីប។ $$ -ចំនួនដំណើរការនៃសែលបច្ចុប្បន្ន។ សម្រាប់ស្គ្រីបសែល នេះគឺជាលេខសម្គាល់ដំណើរការដែលពួកគេកំពុងប្រតិបត្តិ។
តើពាក្យបញ្ជាអ្វីដែលអនុញ្ញាតឱ្យអ្នកមើលពាក្យបញ្ជាទាំងអស់ដែលអ្នកបានប្រើ?
នៅក្នុងលីនុច មានពាក្យបញ្ជាដ៏មានប្រយោជន៍មួយដើម្បីបង្ហាញអ្នកនូវរាល់ពាក្យបញ្ជាចុងក្រោយដែលត្រូវបានប្រើថ្មីៗនេះ។ ពាក្យបញ្ជាត្រូវបានគេហៅយ៉ាងសាមញ្ញថាប្រវត្តិ ប៉ុន្តែក៏អាចចូលប្រើបានដោយមើលទៅលើ . bash_history នៅក្នុងថតផ្ទះរបស់អ្នក។
តើ stdout មានន័យដូចម្តេច?
Stdout ដែលត្រូវបានគេស្គាល់ផងដែរថាជាលទ្ធផលស្តង់ដារ គឺជាអ្នកពិពណ៌នាឯកសារលំនាំដើមដែលដំណើរការអាចសរសេរលទ្ធផល។ នៅក្នុងប្រព័ន្ធប្រតិបត្តិការដូច Unix ដូចជា Linux, macOS X និង BSD stdout ត្រូវបានកំណត់ដោយស្តង់ដារ POSIX ។ លេខពណ៌នាឯកសារលំនាំដើមរបស់វាគឺ 1. នៅក្នុងស្ថានីយ លទ្ធផលស្តង់ដារកំណត់លំនាំដើមទៅកាន់អេក្រង់របស់អ្នកប្រើ។