آموزش همگام شل اسکریپت نویسی

مباحث مربوط به زبان های برنامه نویسی در لینوکس

Re: آموزش همگام شل اسکریپت نویسی

نوشتهاز Ali_Gh » پنج شنبه 10 تیر 1389, 8:34 pm

NabiKAZ نوشته است:...
(2)
فایل دوم الزاماً بایستی اسمش phpfileCreator.bash میبود که اشاره نکردی و من از روی سورس متوجه شدم.

(3)
شاید بهتر می بود هر دو اسکریپت رو یکی میکردی. اما همینجوری هم باعث شد نکات خوبی درمورد اجرای فایل با پارامتر آشکار بشه! که من هم نمیدونستم و البته وقتی سرچ کردم به این کد جالب در این مورد رسیدم که گویاست:
....

(4)
این دستور شگفت انگیز:
کد: گزینش همه
echo $?

که بهش اشاره کردی. من امتحان کردم همیشه مقدار صفر رو برمیگردونه. ممکنه کمی درموردش توضیح بدی؟


(5)
یک نکته مهم اینکه، فایلی که به روش شما اجرا میشه یک هدر به صورت زیر به خروجی ارسال میکنه:
کد: گزینش همه
X-Powered-By: PHP/5.2.11
Content-type: text/html


که اصلاً لازم نیست و برای ظاهر نشدن اون، خط اول رو بایستی با سوئیچ q- بدین صورت نوشت:
[
code]
#!/usr/bin/php -q
[/code]


(6)
خب میتونستی از خروجی دستور:
کد: گزینش همه
which php

برای پیدا کردن مسیر نصب php استفاده کنی و اون رو به ابتدای فایل اضافه کنی، تا دیگه لازم نباشه مقدار اون رو به صورت دستی از کاربر بگیری.


(7)
یکجا اینجوری نوشته میشه: php in worksthe که خروجی اون فایل تست، به ابتدای خروجی دوم میچسبه. حتماً لازم نیست که بگم در php در دستور echo ، آخرش بهتره یه n\ بزاری که این مشکل رخ نده.


(8)
ضمناً فایل php رو در ترمینال اینجوری هم میشه اجرا کرد:
کد: گزینش همه
php -f test.php

..

خب ماشالله شما پست طولانی زدین و جواب دادن بهش یکم زمان می‌بره!
اول اینکه ممنونم که این کد رو تست کردین و در مورد اسم فایل دوم هم فراموش کرده بودم و حق باشماست. دو تا اسکریپت رو من عمدا از هم جدا کردم تا بتونم به نوعی کد رو به حالت پیمانه‌ای (ماجولار) پیاده سازی کرده باشم.
و اون کد چیز شگفت انگیزی نیست! این در واقع مشخص می‌کنند که برنامه‌/دستور قبلی اجرا شده به صورت عادی به پایان رسیده یا با خطا مواجه شده! برای امتحان کردنش کافیه دستور
کد: گزینش همه
yes

رو وارد کنین و بعدش با ctrl+C متوقفش کنین. چون این عمل با کشتن پروسه موجب خارج شدن برنامه به حالتی غیر-نرمال می‌شود اگر بعد از آن دستور
کد: گزینش همه
echo $?

را اجرا کنین با یک عدد غیر صفر روبه‌رو خواهید شد. من از این تکنیک برای تشخیص درست اجرا شدن برنامه فراخوانی شده کمک گرفتم.

در مورد هدری که گفتین اضافه می‌شه نمی‌دونم... راستش این قدر دقیق بررسیش نکرده بودم!

در مورد استفاده از دستور which حق باشماست. ولی من حالتی رو مد نظر قرار دادم که پی اچ پی در قالب یک بسته‌ی lamp مثل xampp هم پیاده سازی شده باشه. در این حالت which نمی‌تونه مسیر php رو پیدا کنه و البته می‌شه از دستور find کمک گرفت که از نظر زمانی مقرون به صرفه نیست.

مورد هفت و هشتم دیگه از استادی شماست. خوبه که اینجا فرصتی هست تا با هم و از هم یاد بگیریم.
دست ها می سایم تا دری بگشایم،
به عبث می پایم تا به در کس آید،
در و دیوار به هم ریخته شان بر سرم می شکند
(نیما)
عکس کاربر
Ali_Gh
مسئول جلسات
 
نوشته: 432
پیوستن: شنبه 7 دی 1387, 11:00 am
شهر: اهواز
Given: 52 thanks
Received: 189 thanks

The following 2 users would like to thank Ali_Gh for his or her post:
NabiKAZ, totia

پیش

برگشت به برنامه نویسی

اکنون هست

;کسانی که اکنون در این تالار هستند: کاربری نام ننوشته است کاربر و 1 میهمان

cron