السلام عليكم و رحمة الله..........
اليوم نقدم شرحا بسيطا لأحد مزايا سطر اﻷوامر ، و التي توفر وقتا كبيرا بالنسبة لمن يريد تنفيذ أمر أو عملية على قيم متشابهة......
أولا- صيغة اﻷمر:
ثانيا- تفسير الصيغة:
المقطع اﻷول من اﻷمر
هو مخزن القيمة التي سوف تستدعى و تدخل في العملية الثانية (القيمة نفسها تكون ناتج عملية).
المقطع الثاني
هو الذي يستدعي القيمة المخزنة في المقطع الأول و ينفيذ العملية المطلوبة.
ثالثا- بالمثال يتضح المقال:
في هذا المثال قمنا باعطاء الحرف i مخرجات اﻷمر ls كقيم له ، وقمنا بعد ذلك باستدعاء القيم المخزنة داخل i والمعبر عنها ب $i لتنفيذ أمر echo عليها واحدة بعد اﻷخرى.
رابعا أمثلة عملية :
أنشئ ملف text file
و ضع داخل الملف:
islamway.com
linuxac.org
google.com
gnu.org
cnn.com
مثلا و ليكن كل نطاق منهم في سطر مستقل و أطلق عليه اسم domains.txt مثلا ، ونفذ :
و هذا مهم لمدراء النظم و لأصحاب شركات اﻹستضافة ،لو جمع ألف نطاق في ملف واحد يمكنه أن يتابعهم بكل سهولة بأمر واحد فقط.
جرب هذا أيضا :
هذا سوف يقوم باستخدام wget لتحميل أول 9 سور من القرءان الكريم بصوت الشيخ الشاطري.
ويلاحظ أنه ليس من الضروري أن تعبر عن القيم ب i و $i ممكن أن تستبدلهم بما يحلو لك من الحروف ، ويلاحظ أنه من الممكن أن تستخدم ال command chaining و redirection ، مثال :
هذا سوف يقوم بإظهار رقم العملية وانهائها وتحويل مخرج اﻷمر الى الملف الذي قمت بتحديده، وفي هذه الحالة سوف يغلق متصفحك.
*يلاحظ أنه من الممكن استتبدال``ب $() ، مثال:
بدلا من كتابة
يمكنك أن تكتب
و يلاحظ أيضا أنه ليس من الضروري أن تكون القيمة المخزنة في المقطع اﻷول من اﻷمر هي نتيجة أمر (,seq,ls,cat,.....) ، بل من الممكن أن تدخل أنت بيدك القيم التي سوف تستدعيها فيما بعد ، مثال:
أو
مثلا .*
أرجوا أن أكون قد أفدتكم ولو بالقليل .
تحياتي للجميع
اليوم نقدم شرحا بسيطا لأحد مزايا سطر اﻷوامر ، و التي توفر وقتا كبيرا بالنسبة لمن يريد تنفيذ أمر أو عملية على قيم متشابهة......
أولا- صيغة اﻷمر:
كود:
for i in `SOME VALUE`; do SOME PROCESS $i; done
المقطع اﻷول من اﻷمر
for i in `SOME VALUE`
المقطع الثاني
do SOME PROCESS $i
ثالثا- بالمثال يتضح المقال:
كود:
for i in `ls` ; do echo $i ; done
رابعا أمثلة عملية :
أنشئ ملف text file
و ضع داخل الملف:
islamway.com
linuxac.org
google.com
gnu.org
cnn.com
مثلا و ليكن كل نطاق منهم في سطر مستقل و أطلق عليه اسم domains.txt مثلا ، ونفذ :
كود:
for i in `cat domains.txt` ; do ping -c5 $i ; done
جرب هذا أيضا :
كود:
for i in `seq 9` ; do wget http://download.quranicaudio.com/quran/abu_bakr_ash-shaatree/00$i.mp3; done
ويلاحظ أنه ليس من الضروري أن تعبر عن القيم ب i و $i ممكن أن تستبدلهم بما يحلو لك من الحروف ، ويلاحظ أنه من الممكن أن تستخدم ال command chaining و redirection ، مثال :
كود:
for m in `ps -e | grep firefox | awk {' print $1 '}` ; do echo $m && kill -9 $m ; done >>pid.log
*يلاحظ أنه من الممكن استتبدال``ب $() ، مثال:
بدلا من كتابة
كود:
for i in `ls` ; do echo $i ; done
كود:
for i in $(ls) ; do echo $i ; done
كود:
for i in red green blue; do touch file_$i; done
كود:
for i in *.jpg; do stat $i; done
أرجوا أن أكون قد أفدتكم ولو بالقليل .
تحياتي للجميع
تعليق