سلام،
در پست قبلی قسمتهای 1.4 و 1.5 با هم آموزش داده شده اند.
باز هم مثل آموزشهای قبلی بی مقدمه بریم سر اصل مطلب...
قسمت 1.6 – اجرای اسکریپت در حالت دیباگ
سوئیچ x- به ما کمک می کند به صورت خط به خط اسکریپت را اجرا و نتیجه اجرای هر خط اسکریپت را مشاهده کنیم. اگر بخاطر داشته باشید در قسمت اول آموزش فایلی با نام goodbye-world.sh ساختیم. ابتدا با اجرای دستور
cat goodbye-world.sh
محتوای فایل اسکریپت را مشاهده نمایید. سپس با دستور
bash -x goodbye-world.sh
اسکریپت را بصورت خط به خط اجرا کنید. نتیجه اجرای دستور توسط شما می بایست مشابه تصویر زیر باشد.
به مثال زیر توجه بفرمایید:
#!/bin/bash echo "Hello World!\n" adding_string_to_number="s" v=$(expr 5 + $adding_string_to_number)
اسکریپت را با نام hello.sh ذخیره و اجرا می کنیم؛ خروجی به شکل زیر خواهد بود.
همانطور که در تصویر بالا مشاهده می کنید خطاهایی از این قبیل برای Trace (دنبال کردن) اسکریپت کافی نیست و در اسکریپت های بزرگتر نیز پیدا کردن دستوری که موجب اعلام اینگونه خطاها شده کاری نسبتا دشوار خواهد بود، برای پیدا کردن چنین مشکلاتی استفاده از سوئیچ x- راهی مناسب می باشد. نتیجه اجرای اسکریپت به صورت bash -x hello.sh در شکل زیر نمایش داده شده است:
نکته: از دستور expr برای انجام عملیات ریاضی (فقط بر روی اعداد صحیح Integer) استفاده می کنیم. همانطور که در تصویر بالا دلیل ایجاد خطا را مشاهده می کنید تلاش شده که مقدار رشته ای s را با عدد 5 جمع زده و در متغیری با نام v ذخیره کنیم که ماهیت و فلسفه وجودی دستور expr موجب نمایش خطا شده است.
تمرین1: جهت آشنایی بیشتر با expr دستورات زیر را به ترتیب در ترمینال تایپ کرده و نتایج دریافت شده را تحلیل بفرمایید:
expr 1 + 1 myvar=$(expr 1 + 1) echo $myvar expr $myvar + 1 expr $myvar / 3 expr $myvar \* 3
البته راههای دیگری نیز برای انجام عملیات ریاضی در اسکریپت های Bash وجود دارد که در آموزشهای بعدی توضیح داده خواهند شد.
تمرین 2: دستورات فوق که جهت آشنایی بیشتر درمورد expr آورده شده را بصورت یک فایل اسکریپت قابل اجرا ذخیره کرده و از طریق سوئیچ x- نتیجه خط به خط اسکریپت را Trace نمایید.
موفق و سربلند باشید.