Skip to content

Latest commit

 

History

History
42 lines (34 loc) · 2.44 KB

day-14.md

File metadata and controls

42 lines (34 loc) · 2.44 KB

30 Days of Docker - Day 14

البوسط لي داز كان على shell scripting و شي حوايج لي ممكن ينفعونا نكتبوا Dockerfiles ديالنا .. هاذ البوسط غادي يكون كمالة على ذاكشي لي كنا بدينا ..
    اليوم غادي نهضرو على Filename Expansion و Docker و واحد الحاجة مهمة لي كاتستعمل بزاف في dockerfiles و ماهضرناش عليها المرة لي دازت و لي هي shopt -s nullglob
    الposix shells فيهم واحد الخاصية سميتها Filename Expansion و هي منين تانعطيوه شي filename و تانعطيوه وسط منو واحد من [ ] أو * أو ? تاحاول يستعملهم باش يجبد filenames كاميلين مثلا
# this will delete all pdf file in the working directory 
rm *.pdf
# This will remove mp3, mp4 and any files ending with "mp" followed by a character
rm *.mp?
# this will remove all files starting with a, n or k
rm [akn]*
في حالة ايلا shell ماقدرش يدير expansion تايدوز هاذيك glob كيفما هي للcommand و هاذشي لي تايعطينا error على حساب command لي استعملنا.
اش نفهموا أكثر آجي نتخيلو واحد function تانعطيوها واحد المجموعة ديال files و هي تاتدير عليهم شي خدمة.
المشكل ايلا دوزنا ليها شي glob لي ماتاتماتشي والو غادي يدوزها هاكاك و هاذشي يقدر يعطينا شي حاجات ماشي هي هاذيك.
باش نحلو هاذ المشكل انستعملو nullglob لي في حالة الglob ماماتشات والو تاترد لينا empty string ""
# if we execute this statement
myfunction *.pdf
## if there are pdf files in cwd the shell will execute this
## > myfuction 1.pdf 2.pdf book.pdf
## if there are no pdf files
## > myfunction "*.pdf"
## Since there is no file named "*.pdf" our function will file (a lot of times silently)
## if nullglob is on
## > myfunction ""
ممكن نستعملو failglob لي تاتحبس الscript ايلا كان شي مشكل و لكن عموما هاذا هو التصرف الاعتيادي ايلا كنا خدامين ب set -e