الأحد، 1 أبريل 2012

الأمر getopts للتعامل مع معاملات الباش سكريبت

بسم الله الرحمن الرحيم

يستخدم الأمر getopts لتعامل مع المعاملات الخاصة بالسكريبت بشكل أحترافي , و لهذا المقال لنقترض سنعتمد على هذا السكريبت لشرح هذا الأمر :
#!/bin/bash

while getopts "f:n:h" OPTION

do
case $OPTION in

f)File=$OPTARG

cat $File;;

n)num=$OPTARG

echo $num;;

h)echo "Help";;

?) echo "test Program"

exit ;;

esac
 
done

  
سنبدأ بشرح السطر الثاني الذي يحتوي على الأمر getopts :

while getopts "f:n:h" OPTION

ستقوم الحلقة التكرارية while بالعمل حتي يتم يتنهي عمل الأمر getopts في الحصول على المعاملات المعرفة في ما بين علامتي التنصيص .

"f:n:h"

المعاملات في مثالنا هي f- , -n , -h  و ترمز النقطتين بعد المعامل  لوجود بيانات تابعه للمعامل كهذا المثال للمعامل f :

-f filename

في حالة عدم وجود أي بيانات تابعة للمعاملات سيتم كتابة المعاملات بدون أي مسافة كالتالي :

while getopts "fnh" OPTION

يلي هذا السطر الجملة القرار case التي سوف تنفذ على المتغير OPTION الخاص بحفظ القيمة التي يستعديها الأمر getopts .

case $OPTION in

f)File=$OPTARG

cat $File;;

n)num=$OPTARG

echo $num;;

h)echo "Help";;

?) echo "test Program"

exit ;;

esac
  
يستخدم المتغير الخاص OPTARG لحفظ البيانات التابعة لمعامل في المعامل f لنفترض أن المستخدم قام بكتابة الأمر كالتالي :

-f filename

سيكون قيمة المتغير OPTARG مساوية لقيمة filename , هذا هو شرح بسيط لهذه الأداة التي تزيد من فعالية البرامج .

ليست هناك تعليقات:

إرسال تعليق