الفرق بين المراجعتين لصفحة: «Bash/debugging Bash scripts»
< Bash
أسامه-دمراني (نقاش | مساهمات) طلا ملخص تعديل |
أسامه-دمراني (نقاش | مساهمات) إضافة محتوى 2.0 |
||
سطر 3: | سطر 3: | ||
حين تحدث مشكلة في البرنامج الذي كتبته فإنك في حاجة إلى وضع يدك على مكان المشكلة بالتحديد داخل الشيفرة، وتوفر Bash مزايا تنقيح شاملة لعل أشهرها هو بدء صدفة فرعية بخيار <code>x-</code> الذي سيبدأ الصدفة بالكامل في طور التنقيح، وستُطبَع آثار كل أمر إضافة إلى وسائطه (arguments) إلى خَرج قياسي (standard output) بعد توسيع الأوامر لكن قبل تنفيذها. | حين تحدث مشكلة في البرنامج الذي كتبته فإنك في حاجة إلى وضع يدك على مكان المشكلة بالتحديد داخل الشيفرة، وتوفر Bash مزايا تنقيح شاملة لعل أشهرها هو بدء صدفة فرعية بخيار <code>x-</code> الذي سيبدأ الصدفة بالكامل في طور التنقيح، وستُطبَع آثار كل أمر إضافة إلى وسائطه (arguments) إلى خَرج قياسي (standard output) بعد توسيع الأوامر لكن قبل تنفيذها. | ||
الشيفرة التالية هي لبرنامج <code>commented-script1.sh</code> من مثال [[Bash/script basics|أساسيات كتابة برامج Bash]]، وقد استدعينا الصدفة في طور التنقيح (debug mode)، لاحظ أن التعليقات المضافة ليست مرئية في خرج البرنامج: | الشيفرة التالية هي لبرنامج <code>commented-script1.sh</code> من مثال [[Bash/script basics|أساسيات كتابة برامج Bash]]، وقد استدعينا الصدفة في طور التنقيح (debug mode)، لاحظ أن التعليقات المضافة ليست مرئية في خرج البرنامج:<syntaxhighlight lang="bash"> | ||
os@inspiron:~/scripts$ bash -x script1.sh | |||
+ clear | |||
+ echo 'The script starts now.' | |||
The script starts now. | |||
+ echo 'Hi, os!' | |||
Hi, os! | |||
+ echo | |||
+ echo 'I will now fetch you a list of connected users:' | |||
I will now fetch you a list of connected users: | |||
+ echo | |||
+ w | |||
13:46:40 up 24 min, 1 user, load average: 0.54, 0.33, 0.23 | |||
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT | |||
os tty7 :0 13:22 23:56 24.22s 0.21s /usr/li | |||
+ echo | |||
+ echo 'I'\''m setting two variables now.' | |||
I'm setting two variables now. | |||
+ COLOUR=black | |||
+ VALUE=9 | |||
+ echo 'This is a string: black' | |||
This is a string: black | |||
+ echo 'And this is a number: 9' | |||
And this is a number: 9 | |||
+ echo | |||
+ echo 'I'\''m giving you back your prompt now.' | |||
I'm giving you back your prompt now. | |||
+ echo | |||
os@inspiron:~/scripts$ | |||
</syntaxhighlight> |
مراجعة 12:04، 31 يوليو 2018
التنقيح على مستوى البرنامج ككل
حين تحدث مشكلة في البرنامج الذي كتبته فإنك في حاجة إلى وضع يدك على مكان المشكلة بالتحديد داخل الشيفرة، وتوفر Bash مزايا تنقيح شاملة لعل أشهرها هو بدء صدفة فرعية بخيار x-
الذي سيبدأ الصدفة بالكامل في طور التنقيح، وستُطبَع آثار كل أمر إضافة إلى وسائطه (arguments) إلى خَرج قياسي (standard output) بعد توسيع الأوامر لكن قبل تنفيذها.
الشيفرة التالية هي لبرنامج commented-script1.sh
من مثال أساسيات كتابة برامج Bash، وقد استدعينا الصدفة في طور التنقيح (debug mode)، لاحظ أن التعليقات المضافة ليست مرئية في خرج البرنامج:
os@inspiron:~/scripts$ bash -x script1.sh
+ clear
+ echo 'The script starts now.'
The script starts now.
+ echo 'Hi, os!'
Hi, os!
+ echo
+ echo 'I will now fetch you a list of connected users:'
I will now fetch you a list of connected users:
+ echo
+ w
13:46:40 up 24 min, 1 user, load average: 0.54, 0.33, 0.23
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
os tty7 :0 13:22 23:56 24.22s 0.21s /usr/li
+ echo
+ echo 'I'\''m setting two variables now.'
I'm setting two variables now.
+ COLOUR=black
+ VALUE=9
+ echo 'This is a string: black'
This is a string: black
+ echo 'And this is a number: 9'
And this is a number: 9
+ echo
+ echo 'I'\''m giving you back your prompt now.'
I'm giving you back your prompt now.
+ echo
os@inspiron:~/scripts$