Warning: fetch_template() calls should be replaced by the vB_Template class. Template name: nick_announce in [path]/includes/functions.php on line 4734

Warning: fetch_template() calls should be replaced by the vB_Template class. Template name: genderbit_display_post in [path]/includes/functions.php on line 4734
آخرین اخبار دانشگاه پیام نور"فراگیر پیام نور"برنامه امتحانات پیام نور" تستی یا تشریحی پیام نور"سیستم گلستان پیام نور " reg.pnu.ac.ir "خبر های جنجالی پیام نور" نمونه سوال پیام نور"دکترا پیام نور "ارشد پیام نور "لیست منابع پیام نور"انتخاب واحد پیام نور"اخبار مراکز و واحد ها پیام نور"عکس های پیام نوری
ایمیل:




×
انواع دستورات در برنامه‌نویسی پوسته‌
استاد زانیس

تبلیغات در پیام نور

دسترسی سریع
تبلیغات

موضوعات مهم

 

راهنماي جامع تصويري ورود به سيستم گلستان دانشگاه پيام نور(سيستم اطلاعات دانشجويي)
آموزش جامع و تصویری اعتراض و اعلام اشکال به کلید سوالات تستی امتحانات پیام نور
پاسخگویی به فرم های ارزشیابی اساتید
آموزش چگونگي نحوه ي دیدن نمرات پايان ترم دانشگاه پیام نور
راهنمای تصویری و جامع مشاهده و پرینت کارت ورود به جلسه امتحانات پایان ترم ( گزارش ۴۲۸ )
راهنمای تصویری و جامع اعلام اشکال و اعتراض به سوالات امتحانات پایان ترم پیام نور
راهنمای تصويري و جامع دریافت سوالات امتحانات پایان ترم از سيستم گلستان
راهنمای تصويري و جامع نحوه مشاهده نمرات پایان ترم دانشجویان پیام نور در سیستم گلستان
نکات مهم در مورد آزمون های پایان ترم دانشگاه پیام نور
راهنمای تصويري و جامع تکمیل پاسخنامه های پایان ترم دانشگاه پیام نور
آموزش جامع و تصويري چگونگي ثبت اشكال واعتراض به سوالات پايان ترم در سيستم گلستان
آموزش چگونگي صدور كار ورود به جلسه در سيستم دانجشويي گلستان رو بصورت جامع و تصويري
دانلود رایگان نمونه سوال رشته های پیام نور نیمسال دوم 90-91 پیام نور مقطع کارشناسی+پاسخنامه
دانلود رایگان مجموعه نمونه سوالات تمامی رشته های پیام نور نیمسال اول 90-91 دانشگاه پیام نور

تالارهای مهم

 

اخبار و اطلاعیه ها ی عمومی پیام نور
جدیدترین اخبار داخلی و غیر درسی دانشگاه پیام نور
اخبار و اطلاعیه ها ی کنکور و آزمون های پیام نور
سيستم دانشجويي گلستان پيام نور
جديدين اخبار سیستم گلستان
سوالات مرتبط با پيام نور(پرسش و پاسخ)
جديدترين اخبار پیام نور
منابع درسی و برنامه های امتحانی پیام نور
اخبار دوره های فراگیر پیام نور
پرسش و پاسخ در مورد گلستان
انتخاب واحد و حذف و اضافه پیام نور
کنکورهای فراگیر پیام نور
منابع درسی و برنامه های امتحانی پیام نور
اطلاعیه ها و بخشنامه ها ی پیام نور

نمونه سوالات پیام نور

 

نمونه سوالات مقطع کارشناسی پیام نور
نمونه سوالات مقطع کارشناسی ارشد پیام نور
نمونه سوالات مقطع دکترا
نمونه سوالات آزمونهای فراگیر ( کاردانی به کارشناسی)
نمونه سوالات آزمونهای فراگیر پیام نور( کارشناسی )
نمونه سوالات آزمونهای فراگیر پیام نور ( کارشناسی ارشد )
نمونه سوالات امتحانی دروس عمومی(کارشناسی)
نمونه سوالات امتحانی دروس پایه و مشترک(کارشناسی)
نمونه سوالات گرایش کامپیوتر(کارشناسی)
دانلود رایگان نمونه سوالات پیام نور
اخبار و اطلاعيه هاي بانک نمونه سوالات باشگاه
اطلاعیه ی بازسازی و تکمیل سازی نمونه سوالات باشگاه
طرح جمع آوری نمونه سوالات پیام نور در باشگاه




سیستم گلستان پیام نور
نمایش نتایج: از شماره 1 تا 1 از مجموع 1

موضوع: انواع دستورات در برنامه‌نویسی پوسته‌

  1. Top | #1

    تاریخ عضویت
    Mar 2009
    شماره عضویت
    337
    عنوان کاربر
    مدير كل تالاركامپيوتر و اينترنت و فناوري , برنامه نویسی و طراحی صفحات وب
    میانگین پست در روز
    1.64
    محل تحصیل
    PNU-CLUB
    شغل و حرفه
    PNU-CLUB
    رشته تحصیلی
    PNU-CLUB
    محل سکونت
    PNU-CLUB
    ارسال ها
    9,214
    می پسندم
    1,391
    مورد پسند : 2,553 بار در 1,690 پست
    پست های وبلاگ
    1

    Fileupload انواع دستورات در برنامه‌نویسی پوسته‌

    استاد زانیس
    لینوکس ‌‌برای ‌همه‌
    سرجمع دو نوع دستور در پوسته وجود دارد: یک سری دستورهای «معمولی» هستند که می‌شود از خط فرمان ( Command Prompt ) هم آن‌ها را اجرا کرد (که به آن‌ها دستورات خارجی هم گفته می‌شود)، و یک سری دستور «از پیش تعیین شده» هم وجود دارد که (دستورات داخلی نامیده می‌شود) پیشتر به آن‌ها اشاره شد.
    دستورات داخلی نمی‌توانند به‌عنوان برنامه فراخوانده شوند. البته، چندان هم مهم نیست که یک دستور داخلی است یا خارجی؛ جز این‌که دستورات داخلی بهتر اجرا می‌شوند. در این بخش، تنها دستورات مهم خارجی و داخلی را بررسی خواهیم کرد.

    اگر کاربر لینوکس هستید، به‌طور قطع دستورات دیگری را می‌دانید که می‌شود در خط فرمان به‌کار برد، پس می‌توانید از آن‌ها هم در اسکریپت پوسته خود بهره بگیرید.

    break

    دستور < break>برای فرار از حلقه‌های بسته for ، while و until به‌کار می‌رود. می‌توانید با break چند بار از حلقه فرار کنید، اما این‌کار باعث می‌شود تا خوانایی اسکریپت پایین بیاید، و پیشنهاد نمی‌شود. تنها کافی‌ست بدانید که به‌طور پیش‌فرض، break از یک سطح (یک دور) حلقه فرار می‌کند.

    :

    دستور <:> (دونقطه، کولن) دستور پوچی است. اغلب برای ساده کردن منطق عبارات به‌کار می‌رود و صورت دیگری برای true است. چون دستور تعبیه شده‌ای است، پس از true سریع‌تر اجرا می‌شود، هرچند خروجی کار کمتر خواناست. ممکن است در عباراتی مانند while: آن را مشاهده کنید که در واقع، به‌جای while true می‌نشیند و منظور همان حلقه نامتناهی همیشگی است، اما پرکاربردتر است.

    دستور دو نقطه در مقداردهی به متغیرها نیز به‌کار می‌آید، مثلا در دستور:
    ت$تvar:=value:
    بدون حضور:، پوسته سعی می‌کند $var را به‌عنوان یک دستور اجرا کند.

    نکته:در اسکریپت‌های پوسته‌های قدیمی، ممکن است نگاهتان به کولنی بیفتد که ابتدای خط شروع شده است. آن برای کامنت گذاشتن است، اسکریپت‌های مدرن‌تر برای ایجاد خط کامنت از استفاده می‌کنند، به‌همان دلیل اجرا شدن سریع‌تر.

    continue

    درست همانند هم‌نام این دستور در زبان C، این دستور از حلقه‌های for، while یا until خارج می‌شود و حلقه را به دور بعدی می‌فرستد و متغیر حلقه مقدار بعدی خود را می‌گیرد.
    َ!/‌bin/sh‌
    rm -rf fred*
    1fred 2fred 3mkdir fred
    4fred for file in fred*
    do
    if [ -d “$file”]; then
    echo “skipping directory $file”
    continue
    fi
    file$echo file is
    done
    rm -rf fred*
    0exit
    continue می‌تواند عدد شمارنده حلقه را به‌عنوان پارامتر انتخابی بگیرد تا بتوانید از بخشی از حلقه‌ تو در تو بیرون بروید. این کار هم به‌ندرت استفاده می‌شود و باعث می‌شود تا اسکریپت شما سخت‌تر فهمیده شود. برای مثال:
    3 2 1for x in
    do
    x$echo before
    1continue
    x$echo after
    done
    خروجی زیر را خواهد داد:
    1before
    2before
    3before

    .

    دستور < . > (نقطه، دات)، دستوری را در همین پوسته اجرا می‌کند:
    shell-script/. .
    اغلب، وقتی یک اسکریپت دستور خارجی یا اسکریپتی را اجرا می‌کند، محیطی جدید (Subshell) ، یا زیرپوسته ایجاد می‌شود و دستور در محیط جدید اجرا می‌شود و آن محیط با کد خروجی‌ای که از اجرای اسکریپت حاصل می‌شود، بسته شده و کد را به پوسته والد بر می‌گرداند.

    هرچند دستور خارجیsource و دستور نقطه دستوراتی که در یک اسکریپت همان پوسته قرار دارند را اجرا می کند. چون به‌طور پیش‌فرض با اجرای یک اسکریپت پوسته، محیط جدیدی ایجاد می‌شود، هر تغییری که اسکریپت در متغیرهای محیطی ایجاد کند، نابود می‌شوند.
    از طرف دیگر دستور نقطه اجازه می‌دهد اسکریپت اجرا شده محیط فعلی را تغییر دهد. این کار هنگام استفاده از اسکریپتی که به عنوان Wrapper (پوشا) برای تنظیم محیط فعلی به‌منظور اجرای دستورات بعدی به‌کار می‌رود، بسیار مفید است.

    مثلا وقتی دارید روی چند پروژه به‌صورت همزمان کار می‌کنید، احتمالا به خودتان می‌آیید و می‌بینید دارید دستورات را با پارامترهای مختلفی فراخوان می‌کنید و لابد نسخه کامپایلر قدیمی را برای راه‌اندازی برنامه‌های قدیمی مدام صدا می‌زنید.

    در اسکریپت‌های پوسته، دستور نقطه کمی شبیه شبه‌کدinclude درC یاC++ عمل می‌کند. هرچند که در حقیقت اسکریپت را include نمی‌کند، دستورات را در همین محیط اجرا می‌کند و به‌همین دلیل، شما می‌توانید از این دستور برای مجتمع‌سازی متغیرها و تعریف توابع در یک اسکریپت استفاده کنید.

    echo

    صرف‌نظر از استفاده printf در پوسته‌های مدرن، تا همین الا‌ن مثال‌ها را با استفاده از دستور echo برای چاپ یک رشته، که به‌دنبالش کاراکتر خط جدید دارد، حل کردیم. منتها، مشکل اینجاست که نسخه‌های مختلف UNIX راه‌حل‌های مختلفی برای این‌کار (چسبانیدن کاراکتر خط جدید به انتهای رشته چاپی) دارند، اما عموما این دستور جواب‌گو است و نیازی به مراجعه به راهنمای دستور ندارید:

    echo n “String To Output”

    eval

    دستور eval شما را قادر می‌سازد تا دستورات را مقدار دهی کنید. این دستور تعبیه شده است و نمی‌توان به‌عنوان دستور خارجی از آن استفاده کرد. بهترین و واضح‌ترین مثالی که می‌توان از این دستور آورد، همانی است که در صفحه راهنمای آن آورده شده:
    10foo=
    x=foo
    x”$”$y=
    y$echo
    واضح است که این دستور خروجی $foo را می‌دهد، اما این جا را نگاه کنید:
    10foo=
    x=foo
    x”$”$eval =y
    y$echo

    خروجی 10 را می‌دهد. انگارeval یک جورهایی شبیه یک $ اضافه باشد: مقدارِ مقدارِ یک متغیر را به ما می‌دهد. دستورeval خیلی مفید است، باعث می‌شود کد ایجاد شده و روی هوا (on-the-fly) اجرا شود. دیباگ آن سخت می‌شود اما باعث می‌شود کارهایی که پیاده‌سازی‌شان جور دیگر سخت یا حتا غیرممکن است، به‌سادگی پیاده کرد.

    exec

    دستور < exec >دو کاربرد مختلف دارد. کاربرد معمول‌اش جایگزینی پوسته فعلی با برنامه دیگری است. برای مثال:
    Exec wall “thanks for all the fish”

    را اگر در یک پوسته به‌کار ببریم، پوسته فعلی را با دستور wall جایگزین می‌کند. هیچ خطی در اسکریپت بعد از دستور exec اجرا نمی‌شود، چرا که پوسته‌ای که اسکریپت ما را ایجاد می‌کرد دیگر وجود ندارد.
    راه حل دوم استفاده از exec تغییر توضیح‌دهنده‌های فایل است. برای نمونه:
    > afile3exec
    باعث می‌شود که توضیح‌دهنده فایل 3 باز شود تا از فایلafile بخواند. این دستور به‌ندرت به‌کار می‌آید.

    exit n

    دستور باعث می‌شود تا اسکریپت با کد خروجیn خارج شود. اگر در خط فرمان هر پوسته‌ای اجرایش کنید، شما را از سیستم بیرون می‌فرستد. اگر به اسکریپت خود اجازه بدهید که بدون هیچ کدی که نشانگر وضعیت خروج باشد، دستورexit را اجرا کند، در این‌صورت کد وضعیت آخرین دستور اجرا شده در اسکریپت به‌عنوان مقدار بازگشتی مورد استفاده قرار می‌گیرد. استفاده از کد خروجی همیشه تمرین خوبی است و باید عادت بشود.در برنامه‌نویسی اسکریپت پوسته، کد خروجی 0 یعنی موفقیت، و کدهای 1 تا 125، کدهای خطایی هستند که در اسکریپت‌ها می‌توان از آن‌ها استفاده کرد. مقادیر باقی‌مانده معنای رزرو شده دارند، جدول زیر را ببینید:

    استفاده از 0 برای خروجی موفقیت آمیز، شاید برای کاربران C یا C++ کمی عجیب به‌نظر برسد. ویژگی خوبی که در اسکریپت‌ها به چشم می‌آید، این است که می‌توانید از 125 کد تعریفی توسط کاربر بدون احتیاج به متغیر عمومی(global) استفاده کنید.

    export

    دستور باعث می‌شود متغیرها درsubshell ها نیز بتوانند استفاده شوند. به‌طور پیش‌فرض هیچ متغیری در یک پوسته نمی‌تواند داخل پوسته‌subshell/ های دیگر به‌کار گرفته شود. دستورexport از پارامترهای خود متغیر محیطی درست می‌کند که بتوانند در اسکریپت‌ها و برنامه‌های دیگری که از برنامه فعلی فراخوانده می‌شوند، مورد استفاده قرار بگیرند. اگر بخواهیم فنی‌تر بگوییم، متغیرهای صادر شده متغیرهای محیطی هر پروسس فرزندی را که از پوسته ایجاد شده تشکیل می‌دهند. بیایید یک مثال را ببینیم:

    فایل2export
    َ!/‌bin/sh‌
    “foo$”echo
    “bar$”echo
    فایل1export
    َ!/‌bin/sh‌
    ”The first meta-syntactic variable”foot=
    The second meta-”export bar=
    ”syntactic variable
    2export
    اگر این اسکریپت را اجرا کنیم، خروجی این‌طوری می‌شود:

    1./export$
    The second meta-syntactic variable
    $


    کد خروجی ‌شرح‌

    126 فایل قابل اجرا شدن نیست‌

    127 دستور یافت نشد

    128و بالا‌تر سیگنالی رخ داد
    حتما به ما سر بزنيد زرر نمي كنيد
    [فقط کاربران سایت توانایی دیدن لینکها را دارند]
    [فقط کاربران سایت توانایی دیدن لینکها را دارند]

    [فقط کاربران سایت توانایی دیدن لینکها را دارند]

  2. # ADS
    نشان دهنده تبلیغات
    تاریخ عضویت
    -
    محل سکونت
    -
    ارسال ها
    -
     

موضوعات مشابه

  1. برنامه نویسی c جلسه ششم-دستورهای كنترلي
    ارسال شده توسط Y@SiN در تالار برنامه سازي پيشترفته
    پاسخ ها: 4
    آخرين ارسال: 05-03-2010, 11:46 AM
  2. دستورات برنامه نویسی میکروکنترلر microcontroller
    ارسال شده توسط TAHA در تالار مباحث ميكرو كنترلر و برنامه نويسي رباتيك
    پاسخ ها: 0
    آخرين ارسال: 11-12-2009, 10:06 PM
  3. میکروکنترلر : دستورات برنامه نویسی میکروکنترلر avr برای راه اندازی lcd
    ارسال شده توسط TAHA در تالار برنامه نوسي ميكروكنترولر
    پاسخ ها: 0
    آخرين ارسال: 11-07-2009, 08:04 PM
  4. برنامه نویسی با پوسته لینوکس
    ارسال شده توسط TAHA در تالار برنامه نوسي لينوكس
    پاسخ ها: 0
    آخرين ارسال: 09-22-2009, 11:27 AM
  5. برنامه نویسی با پوسته لینوکس
    ارسال شده توسط hiddenboy در تالار مباجث لينوكس(Linux)
    پاسخ ها: 0
    آخرين ارسال: 11-02-2008, 07:21 PM

برچسب های ویژه

دستورات در برنامه نویسی

دستور eval

برنامه نویسی پوسته

دستورات در برنامه نویسی repeat

در برنامه نویسی include انواع

انواع توابع داخلی برنامه نویسی

جایگزین برنامه دیگر توسط تابع exec

پروژه های avr site:pnu-club.com


برچسب برای این موضوع

بوک مارک ها

بوک مارک ها

مجوز های ارسال و ویرایش

  • شما نمی توانید موضوع جدید ارسال کنید
  • شما نمی توانید به پست ها پاسخ دهید
  • شما نمی توانید فایل پیوست ضمیمه کنید
  • شما نمی توانید پست های خود را ویرایش کنید
  •  
آخرین اخبار دانشگاه پیام نور"فراگیر پیام نور"برنامه امتحانات پیام نور" تستی یا تشریحی پیام نور"سیستم گلستان پیام نور " reg.pnu.ac.ir "خبر های جنجالی پیام نور" نمونه سوال پیام نور"دکترا پیام نور "ارشد پیام نور "لیست منابع پیام نور"انتخاب واحد پیام نور"اخبار مراکز و واحد ها پیام نور"عکس های پیام نوری