الفرق بين المراجعتين ل"Bash/debugging Bash scripts"

من موسوعة حسوب
اذهب إلى التنقل اذهب إلى البحث
ط
(إضافة محتوى 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$