الخميس، 28 فبراير 2019

تشغيل السكربت مع Arguments - الدرس الثاني


ان كنت مداوما على الموقع انت تعرف ما عليك لا تنسى دعم الموقع بنشر المقال أو بوضع تعليق , كثمن للجهد .

كنت جديداَ على الموقع نرحب بك ونتمنى أن تستفيد من المقالات التي أسهر عليها حتى تتضمن شرحا وافي , الان كل ما عليك ان تدعم الموقع بنشر المقال أو بوضع تعليق .


قد يكون العنوان غير واضح للجدد في البرمجة لكن للتوضيح سأعطي مثال على Arguments . سنأخد من الدرس السابق فقط امر تنفيذ السكربت مع اضافة  argument :

0xy4hy4@ITechuser: ~ $ bash script –help

Arguments تسمح لك بإدخال قيمة من خارج السكربت , كمثال على argments


0xy4hy4@ITechuser: ~ $ cat x.txt


x.txt هو argument . cat ستقوم بإدخال القيمة النصية وعرض المحتوى الموجود على ذلك argument


0xy4hy4@ITechuser: ~ $ bash script fname lname age

اذا أردنا نجعل السكربت يقرأ الكلمات المدخلة

  • $0  هذا المتغير بشكل افتراضي يحتفظ بقيمة اسم السكربت "script"
  • $1  هذا المتغير بشكل افتراضي يحتفظ بالقيمة "fname"
  • $2  هذا المتغير بشكل افتراضي يحتفظ بالقيمة "lname"
  • $3  هذا المتغير بشكل افتراضي يحتفظ بالقيمة "age"


لنجرب الان كل ما سبق في سكربت يقوم بطباعة اسم السكربت , الاسم الاول , الاخير , والسن الذي تم ادخاله من طرف المستخدم .


 
#!/bin/bash

echo "Hello ! "
echo “script name : $0 ”
echo “First Name : $1 ”
echo “Last Name : $2 ”
echo “Age : $3 ”
السكربت واضح . تعمدت ان أضعه بشكل مبسط بتكرار echo كثيراَ
امر اخر اذا أردنا طباعة كل arguments  


 
#!/bin/bash
echo "you have entered this arguments : $* "

الان لنلقي نظرة على اختلاف الاقتباسات وماهو الفرق بين اقتباس مفرد ('')  و اقتباس مزدوج ("") و backslash (\)
(single quote , double quote and backslash)


في الدرس الاول عندما قمنا بطباعة قيمة نصية dHello worl لا يهم ان استعملنا single or double لان كلاهما سيعطي نفس النتيجة .

لكن لس هو الحال مع السيناريو السابق . لذلك من المهم أن نفهم الية عمل الاقتباسات .
كما رأينا سابقا في

echo “script name : $0 ” 

فان استخدام double quote ينتج عنه طباعة القيمة النصية script name :  مصحوبة بقيمة المتغير $0

script name : script

في حين اذا استخدمنا single quote سينتج عنه طباعة القيمة النصية متبوعة باسم المتغير $0 كقيمة نصية وليس قيمة المتغير .


script name : $0


اذن ف double quote تعتبر كل اسم بعد اشارة $ كاسم متغير . و single quote تعتبر كل شيء قيمة نصية .


أيضا يمكننا تخطي حاجز double quote وجعل اسم متغير يطبع كقيمة نصية اي جعله كدور single quote وذلك بإضافة (\) قبل $
مثال :


echo “First name : \$1 ”


طبعا Arguments لديها دور كبير سنراه في الدروس القادمة . أتمنى ان يكون الشرح خفيف وسهل . شكراَ



[full-width]

إرسال تعليق

    All Rights Reserved by ITech User 2019

    Whatsapp Button works on Mobile Device only