הרחבת Brace היא טכניקה יעילה כדי ליצור רשימות של מחרוזות שיכולות לשמש סקריפטים וכינויים ועל שורת הפקודה לינוקס. חסוך זמן טעויות להימנע על ידי הקלדה פחות.
הרחבת Brace
לפני פגז Bash מבצע פקודה בחלון מסוף או קו תסריט, הוא בודק אם היא צריכה לבצע כל החלפות על הפקודה. שמות משתנים מוחלפים על ידי הערכים שלהם, כינויים מוחלפים על ידי הפקודות היא הקצרנות מיועדת לאנשים, וכול רחבה מבוצעת. הרחבת Brace היא צורה אחת של הרחבה הנתמכת על ידי בש.
הרחבת Brace זמינה קונכיות מודרניות, אבל זה עלול להיות חסר פגזים ישנים מסוימים. אם אתה הולך הרחבת סד לשימוש סקריפטים, לוודא כי תפעיל רחבת סד מעטפת תומכת, כגון Bash:
אנחנו נהיה באמצעות Bash עבור דוגמאות שלנו.
רשימות של מחרוזות יצירה עשוי להיראות יותר של חידוש מאשר תועלת, אבל זה עושה להציע פונקציונאלי כלשהי שיכולה לחסוך זמן וקשה. לעתים קרובות, זה יכול לספק פשוט פתרון אלגנטי לבעיה או דרישה.
רחבות פשוט
התרחבות סד נמצאת בין זוג כתפיות "{}". זה יכול להיות רשימה של פריטים מופרדים בפסיק או מציינים טווח. Spaces אינם רשאים בתוך הסוגריים אלא אם אתה כבר עטוף מחרוזת במרכאות "
-
. "
לקבלת רשימה מופרדת בפסיק, בתהליך הרחבה לוקח כל רכיב בתורו ומעביר אותו את הפקודה מתקשר. בדוגמה זו, זה
הֵד
כי פשוט
מדפיס אותם בחלון מסוף
. שים לב הפסיקים מתעלמים.
הד {אחת, שתיים, שלוש, ארבע}
רשימה יכולה להיות מילות או ספרות.
הד {1,2,3,4}
סדר אלמנטי הרשימה הוא שרירותי לחלוטין.
הד (4,2,3,1)
מגוון הרחבה יש התחלה אופי סוף מחוברת עם שתי נקודות"
..
" בלי שום רווחים. כל האלמנטים רשימת הנעדרים ניתנים באופן אוטומטי על ידי הרחבת כך מכלול מדמות מתחילתו ועד תו סוף נוצר.
זה יהיה להדפיס את הספרות מ -1 עד 10.
הד {1..10}
המספור הוא שרירותי. זה לא חייב להתחיל באחת.
הד {3..12}
טווחים ניתן לציין כך הם רצים לאחור. זה יהיה ליצור רשימה של חמש עד אחד.
הד {5..1}
טווחים יכולים לכלול מספרים שליליים.
הד {4} ..- 4
כפי שציינו קודם לכן, מגוון יש התחלה וסוף אופי . זה לא חייב להיות מספר. זה יכול להיות אות.
הד {q..v}
האותיות יכולות להריץ אחורה, מדי.
הד {f..a}
שימוש בהרחבת Brace עם לולאות
ניתן להשתמש הרחבת סד עם טווחים בלולאות ב סקריפטים.
עבור i ב {3..7}
לַעֲשׂוֹת
i echo $
נעשה
טווחי רחבת Brace שיוכלו להשתמש בתווים כמשתנים לולאה.
עבור i ב {} m..q
לַעֲשׂוֹת
i echo $
נעשה
לולאות בדרך כלל משמשים סקריפטים, אבל אין שום דבר כדי למנוע ממך הקלדתם בשורת הפקודה כדי לראות מה יקרה.
עבור i ב {3..7}; לעשות הד $ i; נעשה
עבור i ב {m..q}; לעשות הד $ i; נעשה
שרשור ו קינון
שתי רחבות סמוך לא לפעול באופן עצמאי אחד אחרי השני. הם פועלים הדדית. כל רכיב ההרחבה הראשונה היא פעלה על ידי כל אלמנט ההרחבה השנייה.
הד {q..v} {1..3}
רחבות ניתנות מקוננים גם. התרחבות מקוננת תפעל על אלמנט ערב ביצועו.
הד {במשרה 1, במשרה 2 {a, b, c, d}, במשרה 3}
אתה יכול גם רחבות קן על ידי יצירת רשימה מופרדת בפסיקים של רחבות טווח.
הד {{5..0}, {1..5}}
מבוא ואת Postscript
אתה יכול למקם טקסט לפני ואחרי הרחבת הסד כדי לקבל את הטקסט הכלול בתוצאות ההתרחבות. טקסט לשים מול הרחבה נקרא הקדמה, בעוד טקסט ממוקם מאחורי הרחבת הסד נקרא PostScript.
פקודה זו משתמשת בהקדמה.
הד פרק {1..3}
דוגמה זו משתמשת ב- PostScript:
הד {תוכן, נייר, ביליביוגרפיה} .MD
ופקודה זו משתמשת בשניהם.
הד פרק - 1..4} .md
הרחבת שמות קבצים וספריות
כפי שאתה כנראה ניחשת עכשיו, אחד השימושים העיקריים של הרחבות הסד הוא ליצור שמות קבצים וספריות שניתן לעבר פקודות אחרות. אנחנו משתמשים בהם
הֵד
כמו דרך נוחה לראות בדיוק מה קורה כאשר התרחבות מופעלת. אתה יכול להחליף כל פקודה שלוקח שמות קבצים או ספרייה כמו קלט ולהשתמש בהרחבת הסד עם זה.
עד מהר
צור כמה קבצים
, להשתמש
לגעת
-
מגע - {1..4} .txt
LS * .txt
אם יש לך קבצים רבים עם שם בסיס זה, אבל הרחבות קבצים שונים ואתה רוצה לבצע פעולה על קבוצת משנה של אותם, הרחבות הסד יכול לעזור. כאן, אנחנו דוחים תת קבוצה של קבצים שיש להם "תוכנית" כמו הבטן לתוך קובץ zip בשם "מקור-code.zip."
ספריות פיתוח להכיל הרבה קבצים שיהיו אותו bashename כמו התוכנית הראשית שלך. בדרך כלל, אתה לא רוצה לגבות או להפיץ קבצים כמו ".o" אובייקט קבצים. זוהי דרך מסודרת לכלול רק את סוגי הקובץ של עניין.
תוכנית קוד המקור zip {.c, .h, .css}
פקודה זו תעשה עותק של קובץ ולהציג ".bak" אליו, ביצוע עותק גיבוי של הקובץ המקורי. נקודה מעניינת לציין היא כי הרחבת הסד מכילה רשימה מופרדת פסיק, אבל האלמנט הראשון ריק. אם לא נכללנו את הפסיק, ההרחבה לא היתה מתרחשת.
CP Brace / חדש / PROG-1.C {,. באק}
LS Brace / חדש / PROG-1.C.Bak
כדי לבצע פעולה מסוימת על שני קבצים בספריות שונות, אנו יכולים להשתמש בהרחבת הסד שבשביל לקבצים.
בדוגמה זו, ספריית "הסד" מכילה שתי תיקיות משנה, אחד שנקרא "חדש" ואחד שנקרא "הישן". הם מכילים גירסאות שונות של אותה קבוצה של קבצי קוד המקור. נשתמש ב
-
תוכנית לראות את ההבדלים בין שתי הגרסאות של "prog-1.c".
Diff Brace / {חדש, ישן} /prog-1.c
אם יש לך שלד סטנדרטי של ספריות כי אתה צריך ליצור בתחילת הפרויקט, אתה יכול ליצור אותם במהירות באמצעות הרחבת הסד. ה
mkdir
-
(הורה) אפשרות
יוצר כל ספריות הורה חסרה
כאשר ספריית הילד נוצרת.
MKDIR -P {מקור, לבנות, בנאדם, עזרה {/ עמודים, / yelp, / תמונות}}
עץ
אתה יכול להשתמש בהרחבת הסד עם
ויג 'ו
ל
הורד קבצים מרובים
.
בפיקוד זה, אנחנו הולכים להוריד קבצים משתי ספריות, המכונה "מבחן 1" ו "test2". כל ספרייה מחזיקה שני קבצים בשם "Picture1" ו "תמונה 2".
wget https://www.url-of-your-choice.com/test production.jpgundure_001,002
![]()
רשימה של הקבצים מציגה לך את הקבצים שנחזרו ואיך
ויג 'ומשנה קבצים כדי למנוע עימותים שם עם קבצים קיימים.LS תמונה * *
![]()
לחבק את הסד
נראה כי הרחבת הסד היא עוד אחת סודות הטוב ביותר של לינוקס . אנשים רבים אומרים לי שהם מעולם לא שמעו על הרחבת הסד, בעוד אחרים מודיעים לי שזה אחד הטריקים האהובים על שורת הפקודה שלהם.
תן לו לנסות וזה רק עלול למצוא את דרכה לתוך קבוצה שלך של שורת הפקודה ללכת טריקים.