טווח Bash: כיצד לחזור על רצפים שנוצרו על הקליפה

Bash Range How Iterate Over Sequences Generated Shell



אתה יכול לחזור על רצף המספרים ב- bash בשתי דרכים. האחד הוא באמצעות סיק פקודה ועוד היא על ידי ציון טווח לולאה. ב סיק הפקודה, הרצף מתחיל מאחד, המספר עולה באחד בכל שלב ומדפיס כל מספר בכל שורה עד לגבול העליון כברירת מחדל. אם המספר מתחיל מהגבול העליון הוא יורד באחד בכל שלב. בדרך כלל, כל המספרים מתפרשים כנקודה צפה אך אם הרצף מתחיל ממספר שלם אז רשימת המספרים השלמים העשרוניים תודפס. אם פקודת seq יכולה לבצע בהצלחה אז היא מחזירה 0, אחרת היא מחזירה כל מספר שאינו אפס. ניתן גם לחזור על רצף המספרים באמצעות לולאה עם טווח. שניהם סיק הפקודה ולולאה עם טווח מוצגים במדריך זה באמצעות דוגמאות.

האפשרויות של פקודת 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 עם אפשרות –w

הפקודה הבאה תדפיס את הפלט על ידי הוספת אפס מוביל למספר מ -1 עד 9.

$סיק 0110

תְפוּקָה:

דוגמה 3: אפשרות seq עם –s

הפקודה הבאה משתמשת - כמפריד לכל מספר רצף. רצף המספרים יודפס על ידי הוספת - כמפריד.

$סיק -8

תְפוּקָה:

דוגמה -4: אפשרות seq עם -f

הפקודה הבאה תדפיס 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 | cat> seq.txt
חתול $ seq.txt

תְפוּקָה:

דוגמה 6: שימוש ב- seq in עבור לולאה

נניח שאתה רוצה ליצור קבצים בשם fn1 עד fn10 באמצעות לולאה עם seq. צור קובץ בשם sq1.bash והוסף את הקוד הבא. עבור לולאה יחזור על עצמו 10 פעמים באמצעות הפקודה seq וייצור 10 קבצים ברצף fn1, fn2, fn3 ... ..fn10.

#!/bin/bash
לאניב 'סיק 10'
לַעֲשׂוֹת
לגעתfn.$ i
בוצע

תְפוּקָה:

הפעל את הפקודות הבאות כדי לבצע את הקוד של קובץ bash ולבדוק אם הקבצים נוצרים או לא.

$לַחֲבוֹטsq1.bash
$ls

דוגמאות לולאה עם טווח:

דוגמה 7: ללולאה עם טווח

האלטרנטיבה לפקודת seq היא טווח. אתה יכול להשתמש בטווח in for loop כדי ליצור רצף מספרים כמו seq. כתוב את הקוד הבא בקובץ bash בשם sq2.bash . הלולאה תחזור על עצמה 5 פעמים ותדפיס את השורש הריבועי של כל מספר בכל שלב.

#!/bin/bash
לנב {1..5}
לַעֲשׂוֹת
((תוֹצָאָה= n*נ))
זרק $ n כיכר=תוצאה של $
בוצע

תְפוּקָה:

הפעל את הפקודה לביצוע התסריט של הקובץ.

$לַחֲבוֹטsq2.bash

דוגמה 8: ללולאה עם טווח וערך תוספת

כברירת מחדל, המספר הוא עלייה אחת בכל שלב בטווח כמו seq. ניתן גם לשנות את ערך התוספת בטווח. כתוב את הקוד הבא בקובץ bash בשם sq3.bash . לולאת ה- for בסקריפט תחזור על עצמה 5 פעמים, כל שלב יגדל ב -2 וידפיס את כל המספרים המוזרים בין 1 ל -10.

#!/bin/bash
זרק 'כל המספרים המוזרים מ -1 עד 10 הם'
לאניב {1..10..2}
לַעֲשׂוֹת
זרק $ i;
בוצע

תְפוּקָה:

הפעל את הפקודה לביצוע התסריט של הקובץ.

$לַחֲבוֹטsq3.bash

אם אתה רוצה לעבוד עם רצף המספרים, תוכל להשתמש בכל אחת מהאפשרויות המוצגות במדריך זה. לאחר השלמת הדרכה זו, תוכל להשתמש בפקודת seq ול- loop עם טווח ביעילות רבה יותר בתסריט bash שלך.