دوست عزیز، به سایت علمی نخبگان جوان خوش آمدید

مشاهده این پیام به این معنی است که شما در سایت عضو نیستید، لطفا در صورت تمایل جهت عضویت در سایت علمی نخبگان جوان اینجا کلیک کنید.

توجه داشته باشید، در صورتی که عضو سایت نباشید نمی توانید از تمامی امکانات و خدمات سایت استفاده کنید.
نمایش نتایج: از شماره 1 تا 2 , از مجموع 2

موضوع: برنامه نویسی شل

  1. #1
    کـــــــاربر فــــعال
    رشته تحصیلی
    کامپیوتر(مهندسی نرم افزار)
    نوشته ها
    18,304
    ارسال تشکر
    4,182
    دریافت تشکر: 19,008
    قدرت امتیاز دهی
    220
    Array

    پیش فرض برنامه نویسی شل

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

    1. تایپ کردن دستورات به صورت متوالی در خط فرمان
    2. قرار دادن آنها در یک فایل متنی و اجرای آنها به وسیله خط فرمان

    برنامه های محاوره ای

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

    تایپ کردن اسکریپتهای shell بر روی خط فرمان یک راه ساده و سریع برای نوشتن قطعات کوچک کد به شمار می رود. و همچنین برای زمانی که شما در حال یادگیری و یا تست کردن آنها هستید بسیار مفید است.
    به عنوان یک مثال ساده می توانید فرض کنید که شما تعداد فایل C دارید و می خواهید اسکریپتی طراحی کنید که به کمک آن دورن آنها دنبال کلمه POSIX بگردید به جای اینکه فرمان grep را برای تک تک آنها تایپ کنید می توانید از اسکریپت زیر استفاده کنید:
    کد PHP:
    $ for file in *
    > do
    > if 
    grep -1 POSIX $file
    then
    more $file
    fi
    done 


    توجه کنید که چگونه علامت معمول شل ($) رمانی که ورودی بیشتر را می طلبد از دلار به بزرگتر از (<) تغییر پیدا می کند. بعد از اینکه تایپ اسکریپ بالا در خط فرمان به اتمام برسد شل فورا آن را اجرا می کند
    در مثال فوق دستور grep فایلهایی را که شامل عبارت POSIX هستند را چاپ می کند و سپس دستور more محتویات آنها را نمایش می دهد و در پایان علامت شل از < به دلار تغییر می کند.

    : شل همچنین امکان استفاده از عبارات wildcard را فراهم کرده است که می توانید از آنها در اسکریپتهای خود استفاده کنید.
    استفاده از فایلهای اسکریپت

    می توان از هر ویرایشگر متنی استاندارد برای ایجاد اسکریپت های شل استفاده کرد. برای شروع به کار می توانید اسکریپت زیر را در خط فرمان تایپ کنید:
    کد PHP:
     #!/bin/sh
    #first example
     
    for file in *
    do
    if 
    grep -q POSIX $file
    then 
    echo $file
    fi
    done
    exit 
    کامنتها در اسکریپت ها با # شروع می شوند و تا پایان خط ادامه دارند.کامنتهایی که دارای فرم #! را داند برای مشخص کردن برنامه هایی به کار می رودند که باید اسکریپت را اجرا کنند. به عنوان مثال در اسکریپت بالا برنامه /bin/sh باید اسکریپت را اجرا کند. در صورتی که کامنت فوق وجود نداشته باشد از برنامه پیش فرض که همان /bin/sh است استفاده می شود.
    توجه کنید که مسیر مشخص شده توسط #! باید کمتر از 32 کاراکتر باشد زیرا بعضی از یونیکسهای قدیمی تنها می توانستند 32 کاراکتر بعد از #! را بخوانند اما معمولا لینوکس چنین محدودیتی را ندارد.
    بعد از اینکه یک اسکریپت شروع به پذیرش از طرف شل کرد می تواتند تمامی دستورها و برنامه های موجود که مسیر آنها در متغییر سراسری PATH وجود دارد را اجرا کند.
    دستور exit این اطمینان را می دهد که اسکریپت یک مقدار معین را بازگشت دهد. این مورد به ندرت در اسکریپتها بررسی می شود اما اگر اسکریپتی بخواهد یک اسکریپت دیگر را اجرا کند و بررسی کند که اسکریپت اجرا شده با موفقیت به پایان رسیده یا نه! می تواند مفید واقع شود. در یونیکس و لینوکس مقدار برگشتی صفر به معنای موفقیت و مقدار برگشتی غیر صفر به معنای وجود خطا است که مقدار برگشتی شماره خطا را مشخص می کند.
    اجرا کردن فایل های اسکریپت

    دو گزینه برای اجرای یک فایل اسکریپت شل لینوکس وجود دارد ساده ترین راه این است که آن را به عنوان یک پارامتر به برنامه شل ارسال کنید:
    کد PHP:
    $ /bin/sh first 

    و یا اینکه آنها را همانند برنامه های لینوکس اجرا کنیم. برای اینکار در ابتدا باید به کمک chmod فایل اسکریپت را قابل اجرا کنیم:
    کد PHP:
    chmod +X first 

    و حال می توان آن را همانند یک برنامه معمولی اجرا کرد:
    $ ./first
    گرامر شل

    تا حال مثالهایی ساده را از شل معرفی کردیم حال بهتر است به صورت عمیقتر به بررسی قدرت برنامه نویسی شل بپردازیم. یادگیری زبان برنامه نویسی (اسکریپت نویسی) شل مخصوصا برای افرادی که تا کنون برنامه نویسی کرده اند بسیار آسان است.
    متغییرها

    در شل شما نیازی به تعریف نوع و یا حتی تعریف کردن متغییرها قبل از آنکه از آنها استفاده بکنید ندارید. بلکه آنها به صورت خودکار هرگاه که لازم باشند ایجاد می گردند به طور پیش فرض تمامی متغییرهای شل حتی زمانی که به آنها یک مقدار عددی انتصاب داده می شود به عنوان یک رشته در نظر گرفته می شوند و برنامه های کاربردی هرگاه که لازم باشد این رشته ها را به اعداد تبدیل می کنند. لازم به ذکر است که نام متغییرها همانند بقیه موارد در لینوکس حساس به بزرگی و کوچکی (case sensentive) هستند.
    می توان به محتویات یک متغییر با قرار دادن علامت دلار قبل از نام آن دسترسی داشت. و برای انتصاب یک مقدار به یک متغییر تنها کافیست که نام آن ذکر گردد:
    کد PHP:
    str=Hello World!
    $ echo 
    str
    Hello World


    : لازم به ذکر است که بعد از علامت انتصاب (=) هیچ فاصله ای نباید قرار بگیرد.
    متغییرهای محیطی

    زمانی که یک اسکریپت شل آغاز می گردد بعضی از متغییرها با مقادیر محیطی مقدار دهی اولیه می شوند. معمولا این متغییرها با حروف بزرگ مشخص می کردند و مقادیر آنها بستگی به تنطیمات شخصی شما و لینوکس دارد. این متغییرها عبارتند از:

    • $HOME: شاخه home کاربر کنونی
    • PATH: لیستی از شاخه های جاری که برای جستجو فرامین به کار می روند که به : جدا شده اند.
    • IFS: کاراکترهای جدا کننده پارامترهای ورودی. معمولا لیستی از کاراکترهایی همانند tab، فاصله و ... هستند.
    • 0: نام اسکریپت شل
    • H: تعداد پارامترهای ارسال شده.
    • $$: شماره پروسس اسکریپت. معمولا برای ایجاد فایلهای موقت (temp) منحصر به فرد به کار می رود.

    پارامترهای ارسال شده

    اگر اسکریپت شما به همراه یکسری از پارامترها فراخوانی شده باشد چند متغییر اضافی دیگر نیز ایجاد می شوند که در زیر لیست شده اند و اگر پارامتری ارسال نشود مقدار متغییر $H برابر با صفر خواهد بود.

    • $1 , $2 و ... : پارامترهای ارسال شده.
    • $*: یک لیست از تمامی پارامترهای ارسال شده که آن پارامترها به وسیله کاراکتر جداکننده (که در متغییر IFS مشخص شده) از همدیگر جدا شده اند.
    • @: ویرایشی قابل اطمینان از $* می باشد که در آن از IFS برای جدا سازی استفاده نشده بنابراین اگر کاربر IFS را برابر تهی قرار دهد پارامترها در کنار هم دیگر قرار نمی گیرند:

    کد PHP:
    IFS=''
    set foo bar bam
    $ echo "$@"
    foo bar bam
    $ echo "$*"
    foobarbam
    $ unset IFS
    $echo 
    "$*"
    foo bar bam 

    در مثال بالا پارامترهای foo bar bam به برنامه set ارسال شده.





    منبع :http://wiki.osdev.ir
    شنبه : یارب العالمین 1شنبه : یا ذاالجلال والاکرام
    2شنبه : یا قاضی الحاجات 3شنبه : یاارحم الراحمین
    4شنبه : یا حی یاقیوم 5شنبه : لا اله الا الله الملک الحق المبین
    جمعه : اللهم صل علی محمد وال محمد وعجل فرجهم

  2. #2
    کاربر جدید
    رشته تحصیلی
    مهندسي كامپيوتر
    نوشته ها
    2
    ارسال تشکر
    0
    دریافت تشکر: 0
    قدرت امتیاز دهی
    0
    Array

    پیش فرض پاسخ : برنامه نویسی شل

    خیلی ممنون استفاده کردم

اطلاعات موضوع

کاربرانی که در حال مشاهده این موضوع هستند

در حال حاضر 1 کاربر در حال مشاهده این موضوع است. (0 کاربران و 1 مهمان ها)

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

  1. مقدمه ای بر زبان c
    توسط آبجی در انجمن برنامه نویسی تحت سیستم عامل
    پاسخ ها: 0
    آخرين نوشته: 24th June 2010, 02:32 PM
  2. مقاله: تكنيك ها وزبانهاي برنامه نويسي هوش مصنوعي
    توسط engeneer_19 در انجمن هوش مصنوعی
    پاسخ ها: 0
    آخرين نوشته: 15th April 2010, 10:51 AM
  3. دانلود: برترين برنامه هاي رايگان 1388
    توسط Victor007 در انجمن سایر نرم افزارها
    پاسخ ها: 0
    آخرين نوشته: 12th December 2009, 12:42 PM
  4. سنجش موفقيت برنامه ريزي فناوري اطلاعات
    توسط engeneer_19 در انجمن مباحث فناوری اطلاعات
    پاسخ ها: 0
    آخرين نوشته: 26th July 2009, 08:33 PM

کلمات کلیدی این موضوع

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

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •