نطاق Bash: كيفية التكرار على التسلسلات التي تم إنشاؤها على الغلاف

Bash Range How Iterate Over Sequences Generated Shell



يمكنك تكرار تسلسل الأرقام في bash بطريقتين. واحد عن طريق استخدام فيما يليها الأمر والآخر عن طريق تحديد النطاق في حلقة for. في فيما يليها الأمر ، يبدأ التسلسل من واحد ، ويزداد الرقم بمقدار واحد في كل خطوة ويطبع كل رقم في كل سطر حتى الحد الأعلى افتراضيًا. إذا بدأ الرقم من الحد الأعلى ، فإنه يتناقص بمقدار واحد في كل خطوة. عادة ، يتم تفسير جميع الأرقام على أنها نقطة عائمة ولكن إذا بدأ التسلسل من عدد صحيح ، فسيتم طباعة قائمة الأعداد الصحيحة العشرية. إذا كان يمكن تنفيذ الأمر seq بنجاح ، فسيتم إرجاع 0 ، وإلا فإنه يقوم بإرجاع أي رقم غير صفري. يمكنك أيضًا تكرار تسلسل الأرقام باستخدام حلقة for مع النطاق. على حد سواء فيما يليها يتم عرض الأمر و for loop with range في هذا البرنامج التعليمي باستخدام الأمثلة.

خيارات الأمر seq:

يمكنك استخدام فيما يليها الأمر باستخدام الخيارات التالية.







-في

يُستخدم هذا الخيار لتعبئة الأرقام بالأصفار البادئة لطباعة جميع الأرقام بعرض متساوٍ.



-f شكل

يستخدم هذا الخيار لطباعة الرقم بتنسيق معين. يمكن تنسيق الرقم العائم باستخدام٪ f و٪ g و٪ e كأحرف تحويل. يتم استخدام٪ g كافتراضي.



سلسلة -s

يستخدم هذا الخيار لفصل الأرقام بالسلسلة. القيمة الافتراضية هي سطر جديد (' n').





أمثلة على الأمر seq:

يمكنك تطبيق الأمر seq بثلاث طرق. يمكنك فقط استخدام الحد الأعلى أو الحد الأعلى والأدنى أو الحد الأعلى والأدنى مع قيمة الزيادة أو التناقص لكل خطوة. الاستخدامات المختلفة للأمر seq مع الخيارات موضحة في الأمثلة التالية.

مثال 1: أمر seq بدون خيار

عند استخدام الحد الأعلى فقط ، سيبدأ الرقم من 1 ويزداد بمقدار واحد في كل خطوة. سيقوم الأمر التالي بطباعة الرقم من 1 إلى 4.



$فيما يليها 4

انتاج:

عند استخدام القيمتين مع الأمر seq ، سيتم استخدام القيمة الأولى كرقم بداية وسيتم استخدام القيمة الثانية كرقم نهاية. سيقوم الأمر التالي بطباعة الرقم من 7 إلى 15.

$فيما يليها 7 خمسة عشر

انتاج:

عندما ستستخدم ثلاث قيم مع الأمر seq ، فسيتم استخدام القيمة الثانية كقيمة زيادة أو إنقاص لكل خطوة. بالنسبة للأمر التالي ، رقم البداية هو 10 ، ورقم النهاية هو 1 وسيتم حساب كل خطوة عن طريق إنقاص 2.

$فيما يليها 10 -2 1

انتاج:

مثال 2: seq with –w option

سيطبع الأمر التالي الإخراج بإضافة صفر بادئ للرقم من 1 إلى 9.

$فيما يليها -في0110

انتاج:

مثال 3: seq with –s option

يستخدم الأمر التالي - كفاصل لكل رقم تسلسلي. سيتم طباعة تسلسل الأرقام عن طريق إضافة - كفاصل.

$فيما يليها -8

انتاج:

مثال 4: seq with -f option

سيقوم الأمر التالي بطباعة 10 قيم تاريخ تبدأ من 1. هنا ، يتم استخدام خيار٪ g لإضافة رقم تسلسل مع قيمة سلسلة أخرى.

$فيما يليها -F '٪ g / 04/2018' 10

انتاج:

سلسلة جبال باش

يتم استخدام الأمر التالي لإنشاء تسلسل رقم الفاصلة العائمة باستخدام٪ f. هنا ، سيبدأ الرقم من 3 ويزداد بمقدار 0.8 في كل خطوة وسيكون الرقم الأخير أقل من أو يساوي 6.

$فيما يليها -F '٪F' 3 0.8 6

انتاج:

مثال 5: اكتب التسلسل في ملف

إذا كنت تريد حفظ تسلسل الأرقام في ملف دون الطباعة في وحدة التحكم ، فيمكنك استخدام الأوامر التالية. سيقوم الأمر الأول بطباعة الأرقام إلى ملف يسمى seq.txt . سيتم إنشاء الرقم من 5 إلى 20 وزيادة بمقدار 10 في كل خطوة. يتم استخدام الأمر الثاني لعرض محتوى seq.txt ملف.

$ seq 5 10 20 | قطة> seq.txt
$ cat seq.txt

انتاج:

مثال 6: استخدام seq in for loop

لنفترض أنك تريد إنشاء ملفات تسمى fn1 إلى fn10 باستخدام حلقة for مع seq. قم بإنشاء ملف يسمى sq1.bash وقم بإضافة التعليمات البرمجية التالية. سوف تتكرر For loop لمدة 10 مرات باستخدام الأمر seq وإنشاء 10 ملفات بالتسلسل fn1، fn2، fn3… ..fn10.

#!/bin/bash
لأنافي 'فيما يليها 10'
فعل
لمس. اتصال. صلةالجبهة الوطنية.أنا $
انتهى

انتاج:

قم بتشغيل الأوامر التالية لتنفيذ كود ملف bash وتحقق من إنشاء الملفات أم لا.

$سحقsq1.bash
$ls

أمثلة على حلقة for مع النطاق:

مثال 7: حلقة For مع النطاق

البديل للأمر seq هو range. يمكنك استخدام range in for loop لتوليد تسلسل من الأرقام مثل seq. اكتب الكود التالي في ملف bash اسمه sq2.bash . ستتكرر الحلقة 5 مرات وستطبع الجذر التربيعي لكل رقم في كل خطوة.

#!/bin/bash
لنفي {1..5}
فعل
((نتيجة= ن*ن))
رما - طرد - قذف $ ن مربع=نتيجة $
انتهى

انتاج:

قم بتشغيل الأمر لتنفيذ البرنامج النصي للملف.

$سحقsq2.bash

مثال 8: حلقة For ذات نطاق وقيمة زيادة

بشكل افتراضي ، يتم زيادة الرقم بمقدار واحد في كل خطوة في النطاق مثل seq. يمكنك أيضًا تغيير قيمة الزيادة في النطاق. اكتب الكود التالي في ملف bash اسمه sq3.bash . ستتكرر حلقة for في البرنامج النصي 5 مرات ، كل خطوة تزداد بمقدار 2 وتطبع كل الأرقام الفردية بين 1 إلى 10.

#!/bin/bash
رما - طرد - قذف 'جميع الأعداد الفردية من 1 إلى 10'
لأنافي {1..10..2}
فعل
رما - طرد - قذف أنا $؛
انتهى

انتاج:

قم بتشغيل الأمر لتنفيذ البرنامج النصي للملف.

$سحقsq3.bash

إذا كنت ترغب في العمل مع تسلسل الأرقام ، فيمكنك استخدام أي من الخيارات الموضحة في هذا البرنامج التعليمي. بعد الانتهاء من هذا البرنامج التعليمي ، ستتمكن من استخدام الأمر seq و for loop مع النطاق بكفاءة أكبر في برنامج bash النصي.