إعـــــــلان

تقليص
لا يوجد إعلان حتى الآن.

أربعة طرق مختلفة لتنفيذ ملفات السيكربت في UNIX / GNU/Linux

تقليص
X
 
  • تصفية - فلترة
  • الوقت
  • عرض
إلغاء تحديد الكل
مشاركات جديدة

  • [كتاب] أربعة طرق مختلفة لتنفيذ ملفات السيكربت في UNIX / GNU/Linux

    السلام عليكم
    وصلني على الإيميل هذه المقالة وأحببت أن أشارككم بها ، ولكن لن أترجم كل شيء ، لأني يادوب الإنجليزية أقل من ضعيف ، وهذا الرابط الأصلي :
    http://www.thegeekstuff.com/2010/07/...-shell-script/

    أربعة طرق مختلفة لتنفيذ ملفات الشل ، المفات التنفيذية في لينكس :
    قبل التفيذ لا بد أن يكون الملف قابل للتنفيذ
    كود:
    chmod +x scriptfile
    1- الدخول إلى الدليل الذي عليه الملف ثم وضع نقطة واسلاش قبله ، أو كتابة المسار الكامل إليه -حتى لو كنت في نفس المجلد- فقط
    كود PHP:
    cd /home/username
    $ ./scriptfile

    (or)

    $ /
    home/username/scriptfile 
    2- الطريقة الثانية هي تحديد المفسر للملف :
    فإن أحببت استخدام sh :
    كود:
    $ sh scriptfile
    وإن أحببت الـ bash :

    كود:
    $ bash scriptfile
    3- تنفيذ ملف الشل من خلال استخدام نقطة + فراغ + نقطة + سلاش :
    كود PHP:
    . ./ 
    مثال
    كود:
    $ . ./scriptfile
    لو عملت تغيرات على إحدى الملفات الخاصة بإعداد الـ bash ، ولا تريد تسجيل الخروج بإغلاق الطرفية أو الخروج بشكل كامل في لو كنت خارج X فيكفي تنفيذ أحد الأمرين التاليين من أجل تفعيل التغيرات
    كود PHP:
    cd ~

    $ . ./.
    bashrc

    $ . ./.bash_profile 
    4- الطريقة الرابعة والأخيرة هي تنفيذ الملف من خلال أمر source :

    كود:
    $ source ~/.bashrc

  • #2
    بسم الله الرحمن الرحيم

    التنوع الفريد في لينوكس ، يولد الابداع

    لكن هل هناك فرق بينهم ؟؟
    (لَا تَحْسَبَنَّ الَّذِينَ يَفْرَحُونَ بِمَا أَتَوا وَّيُحِبُّونَ أَن يُحْمَدُوا بِمَا لَمْ يَفْعَلُوا فَلَا تَحْسَبَنَّهُم بِمَفَازَةٍ مِّنَ الْعَذَابِ وَلَهُمْ عَذَابٌ أَلِيمٌ)
    آل عمران 188
    قال رسول الله صلى الله عليه و سلم :
    {لا يشكر الله من لا يشكر الناس}
    {من كان يؤمن بالله واليوم الآخر،فليقل خيراً أو ليصمت}

    جميع المساهمات الحاملة لهذا التوقيع تخضع لرخصة وقف
    أسأل الله العظيم رب العرش العظيم أن يحسن من حال أمتي

    تعليق


    • #3
      جميل و لكن كلام SathiyaMoorthy (الكاتب على الرابط الأصلي) تنقصه الدقة العلمية إن لم نقل أنه ليس صحيح 100%
      هذا ﻷن العمليات الأربعة المذكورة أعلاه قد تختلف نتائجها حسب محتوى السكريبت و محتوى متغيرات المحيط في الصدفة أو الطرفية التي تتم فيها كتابة هذه الأوامر

      مثلا في الطريقة الأولى إذا كان مستوى برمجة السكريبت رديئ بحيث يعتمد على المجلد الذي يتواجد فيه و على تواجد ملفات أخرى في نفس المكان (و هذا للأسف منتشر في كثير من السكريبتات) فسيكون هناك فارق كبير بين تنفيذ السكريبت في هذا المجلد و تنفيذه من مكان آخر ، إذا لم يتعامل السكريب مع المجلد الحالي بالشكل الصحيح فإن التنفيذ الثاني قد يفشل
      طبعا في هذه الطريقة يجب أن يحتوي السكريبت في سطره الأول على مسار تواجد مفسر اللغة التي كتب بها السكريبت
      مثلا إذا كان مكتوب بـ bash
      كود:
       #!/bin/bash
      و إذا كان مكتوب بالباثون
      كود:
      #!/usr/bin/env python
      في الطريقة الثانية الأمر لا يرجع لما يحبه المستخدم على حد تعبيرك و لكن للغة المكتوب بها هذا السكريبت، مثلا لو كان السكريب مكتوب بلغة C shell فهناك احتمال كبير أن يفشل إذا نفذ بواسطة bash

      في الطريقة الثالثة (و هي نفسها الرابعة) التنفيذ مختلف عن ما قبله لأن الصدفة لن تقوم بإنشاء برنامج جديد في الذاكرة (fork a new process) و لكنها ستنفذ أوامر السكربت داخل الصدفة الحالية وسيكون للسكريبت وصول مباشر لمتغيرات محيط الصدفة الحالية (current shell environment variables) و هذا يعني أن أي تغيير يحدثه على هذه المتغيرات (مثلا تغيير PATH) سيبقى أثره حتى بعد انتهاء تنفيذ هذا السكريبت ، بخلاف الطرق السابقة التي يتم فيها إنشاء برنامج جديد في الذاكرة يحتوى على متغيرات محيطه الخاصة به و التي تزول بمجرد انتهاء التنفيذ.
      و لهذا السبب فإن الأمر source لا يصلح لتنفيذ أي سكريبت و لكنه عادة يستعمل لتحميل ملفات تقوم بتغيير شئ في محيط الصدفة shell الحالية كي يتفادى المستخدم الخروج و الدخول من جديد ، طبعا في هذه الحالة يجب أن يكون السكريبت بنفس لغة الصدفة.
      و ليتضح الفرق فليجرب القارئ كتابة سكريبت لا يحتوي إلا على كلمة exit ثم ينفذه بالأمر source ليرى !

      ما عدا الطريقة الأولى فلا يشترط أن يكون ملف السكريبت له صلاحية التنفيذ ، بل تكفي صلاحية القراءة فقط

      الشكر موصول لناقل الموضوع و لكن مع عتاب بسيط لأن هذه الفروق من المفروض أنها لا تفوت خبير أي توزيعة لينكس فضلا عن سلاكوير
      مدونتي
      تغرب عن الأوطان في طلب العلا * وسافر ففي الأسفار خمس فوائد
      تَفَرُّجُ هم ، واكتسـاب معيشــة * وعلم وآداب ، وصحبة ماجـد
      لكن بعدها

      لقرب الدار في الإقتار خيرٌ * من العيش الموسّع في اغتراب

      تعليق


      • #4
        الله يجزيك الخير دكتور جلال على الإيضح وعلى الملاحظات وعلى العتاب والله . لكن كلمة خبير دية والله مش أنا التي وضعتها ، هذه الإدارة وقد عملت لهم رسالة زمان لكي يقوموا بحذفها .
        وألف شكر ليك .

        تعليق

        يعمل...
        X