30 תסריט bash שאלות ותשובות לראיון

30 Bash Script Interview Questions



סקריפטים של Bash היא שפת תכנות שימושית ורבת עוצמה המשמשת בעיקר להפוך כל משימה ידנית לאוטומטית. מחפש עבודה שרוצה להיות בודק אוטומציה או מתכנת bash צריך להתמודד עם כמה שאלות נפוצות בראיון. סוגים שונים של סקריפטים של מעטפת קיימים בלינוקס. אחד מתסריטי הקליפה הפופולריים והשימושיים ביותר הוא Bourne Again Shell או Bash. 30 שאלות ראיון ותשובות חשובות על שפת סקריפטים bash מתוארות במאמר זה כדי להתכונן לעבודה.

#01. מהו סקריפט באש?

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







#02. מהם היתרונות בשימוש בסקריפטים bash?

לתסריט Bash יתרונות רבים המתוארים להלן:



  • זה קל לשימוש וללמוד.
  • משימות ידניות רבות שצריכות לפעול לעתים קרובות ניתנות לביצוע באופן אוטומטי על ידי כתיבת סקריפט bash.
  • ניתן לבצע את רצף פקודות המעטפת המרובות באמצעות פקודה אחת.
  • סקריפט Bash שנכתב במערכת הפעלה אחת של Linux יכול להתבצע בקלות במערכת הפעלה אחרת של Linux. אז הוא נייד.
  • ניפוי באגים קל יותר משפות תכנות אחרות.
  • תחביר שורת הפקודה והפקודות המשמשות במסוף דומים לפקודות ולתחביר המשמשים בסקריפט bash.
  • ניתן להשתמש ב- script Bash לקישור עם קבצי script אחרים.

#03. ציין את החסרונות של סקריפטים bash

כמה חסרונות של סקריפט bash מוזכרים להלן:



  • זה עובד לאט יותר משפות אחרות.
  • התסריט הלא תקין עלול לפגוע בתהליך כולו וליצור שגיאה מסובכת.
  • הוא אינו מתאים לפיתוח אפליקציה גדולה ומורכבת.
  • הוא מכיל פחות מבנה נתונים בהשוואה לשפות תכנות סטנדרטיות אחרות.

#04. אילו סוגי משתנים משמשים ב- bash?

ניתן להשתמש בשני סוגים של משתנים בתסריט bash. אלו הם:

משתני מערכת
המשתנים המוגדרים מראש ומתוחזקים על ידי מערכת ההפעלה לינוקס נקראים משתני מערכת. משתנים מסוג זה משמשים תמיד באות גדולה. ניתן לשנות את ערכי ברירת המחדל של משתנים אלה בהתאם לדרישות.

`set`,` env` ו- ` printenv `ניתן להשתמש בפקודות להדפסת רשימת משתני המערכת.

דוגמא:





#!/bin/bash
# משתני מערכת הדפסה

#Print Bash name shell
זרק $ BASH

# הדפס גרסת קליפת Bash
זרק $ BASH_VERSION

# הדפס שם מדריך הבית
זרק $ HOME

משתנה המוגדר על ידי המשתמש

המשתנים שנוצרים ומתוחזקים על ידי משתמשים נקראים משתנים שהוגדרו על ידי המשתמש. הם נקראים גם משתנים מקומיים. ניתן להכריז על סוגים אלה של משתנים באמצעות שימוש באותיות קטנות או באותיות גדולות או באותיות גדולות ואותיות קטנות. אך עדיף להימנע משימוש בכל האותיות הגדולות כדי להבדיל את המשתנים ממשתני המערכת.
דוגמא:

#!/bin/bash

על אחד=100
זרק $ מספר

#05. כיצד להכריז ולמחוק משתנים ב- bash?

ניתן להכריז על המשתנה ב- bash לפי סוג נתונים או ללא סוג נתונים. אם משתנה bash כלשהו מוכרז ללא לְהַכרִיז פקודה, ואז יתייחסו למשתנה כמחרוזת. משתנה Bash מוכרז עם לְהַכרִיז פקודה להגדיר את סוג הנתונים של המשתנה בהצהרת הזמן.



–R , -i, -a, -A, -l, -u, -t ו -איקס ניתן להשתמש באפשרויות עם לְהַכרִיז פקודה להכריז על משתנה עם סוגי נתונים שונים.

דוגמא:

#!/bin/bash

#הצהיר משתנה ללא כל סוג
על אחד=10

#ערכים ישולבו אך לא יתווספו
תוֹצָאָה=$ מספר+עשרים
זרק תוצאה של $

#הצהיר משתנה עם סוג שלם
לְהַכרִיז -אני על אחד=10

#ערכים יתווספו
לְהַכרִיז -אני תוֹצָאָה= num+עשרים
זרק תוצאה של $

לא מוגדר הפקודה משמשת להסרת כל משתנה bash. המשתנה יהיה בלתי נגיש או לא מוגדר לאחר השימוש לא מוגדר פקודה.

דוגמא:

#!/bin/bash

עמ='רמז לינוקס'
זרק $ str
לא מוגדר $ str
זרק $ str

#06. כיצד להוסיף הערות בסקריפט bash?

ניתן להשתמש בתגובות שורה אחת ורב שורות בתסריט bash. ' # 'סמל משמש להערה בשורה אחת. '<<’ סמל עם מפריד ו ':' עם יחיד (') משמשים להוספת הערה מרובת שורות.

דוגמא:

#!/bin/bash
#הדפס את הטקסט [הערה בשורה אחת]
זרק 'תכנות באש'
< חשב את הסכום
מתוך שני מספרים [הערה מרובת שורות]
הוסף תגובה

על אחד=25+35
זרק $ מספר
:'
שלבו שניים
נתוני מחרוזת [הערה מרובת שורות]
'

חוּט='שלום'
זרק מחרוזת $'עולם'

#07. כיצד ניתן לשלב מחרוזות בתסריט bash?

ניתן לשלב ערכי מחרוזת באסח בדרכים שונות. בדרך כלל, ערכי המחרוזות משולבים על ידי הצבה יחד, אך ישנן דרכים אחרות בשילוב נתוני מחרוזות.

דוגמא:

#!/bin/bash
#התחל את המשתנים
str1='PHP'
str2='לַחֲבוֹט'
str3='פרל'

# הדפס מחרוזת יחד עם רווח
זרק $ str1 $ str2 $ str3

#שלב את כל המשתנים ושמור במשתנה אחר
עמ='$ str1,$ str2ו$ str3'

#שלב נתוני מחרוזות אחרים עם הערך הקיים של המחרוזת
str + ='הן שפות סקריפטים'

#הדפס את המחרוזת
זרק $ str

#08. אילו פקודות משמשות להדפסת פלט ב- bash?

`הד ' ו `printf` ניתן להשתמש בפקודות להדפסת פלט ב- bash. `הד הפקודה `משמשת להדפסת הפלט הפשוט ו- `printf` הפקודה משמשת להדפסת הפלט המעוצב.

דוגמא:

#!/bin/bash

#הדפס את הטקסט
זרק 'ברוכים הבאים ל- LinuxHint'
אֲתַר='linuxhint.com'
#הדפס את הטקסט המעוצב
printf '%s הוא אתר בלוג פופולרי n' אתר $

#09. כיצד לקחת קלט מהמסוף ב- bash?

`לקרוא` הפקודה משמשת בתסריט bash כדי לקחת קלט מהמסוף.

דוגמא:

#!/bin/bash
#הודעת הדפסה
זרק 'הזן את שמך'
#קח קלט מהמשתמש
לקרואשֵׁם
# הדפס את הערך של שם $ עם מחרוזת אחרת
זרק 'השם שלך הואשם $'

#10. כיצד להשתמש בטיעונים של שורת פקודה ב- bash?

הארגומנטים של שורת הפקודה נקראים על ידי $ 1, $ 2, $ 3… $ n משתנים. ערכי ארגומנט של שורת הפקודה מסופקים במסוף בעת ביצוע סקריפט bash. $ 1 משמש לקריאת הטיעון הראשון, 2 $ משמש לקריאת הטיעון השני וכן הלאה.

דוגמא:

#!/bin/bash
#בדוק אם ניתנת טענה כלשהי או לא
אם [[ $ # -משווה 0 ]];לאחר מכן
זרק 'אין נימוק.'
יְצִיאָה 0
לִהיוֹת
#אחסן את ערך הארגומנט הראשון
צֶבַע=$ 1
# הדפס את הארגומנט עם מחרוזת אחרת
printf ״הצבע האהוב עליך הוא %s n' צבע $

#11. האם באש היא שפה בהקלדה חלשה? למה?

כן, bash נחשבת לשפה שהוקלדה בצורה חלשה או רופפת מכיוון שהיא אינה דורשת להצהיר על סוג הנתונים בזמן ההצהרה המשתנה. כל משתני bash מטופלים כמחרוזת כברירת מחדל וסוג המשתנה יוגדר בהתאם לערך הנוכחי. ניתן להגדיר משתני Bash עם סוגי נתונים באמצעות לְהַכרִיז פקודה עם אפשרות מסוימת. אבל האפשרויות להגדרת סוגי נתונים מוגבלות ואינן תומכות בכל סוגי הנתונים. לדוגמה, לָצוּף לא ניתן להכריז על סוג הנתונים באמצעות לְהַכרִיז פקודה.

דוגמא:

#!/bin/bash

#סוג הנתונים של $ myVar הוא מחרוזת כברירת מחדל
myVar=29

# הדפס את המשתנה
זרק $ myVar

# הצהרת משתנה שלם מספר $ עם הערך 67
לְהַכרִיז -אני מספר=67

#הדפס את המשתנה
זרק מספר $

# הקצה נתוני מחרוזת למשתנה המספרי. השורה הבאה תיצור
שגיאת תחביר # והערך של $ מספר לא ישתנה
מספר='אני אוהב באש'
זרק מספר $

#12. כיצד לקרוא את המילה או העמודה השנייה מכל שורה בקובץ?

ניתן לקרוא את המילה או העמודה השנייה של קובץ בתסריט bash באמצעות פקודות bash שונות בקלות, כגון 'awk', 'sed' וכו '. כאן, השימוש ב- `אווק` מוצג בדוגמה הבאה.
דוגמא: נניח, קובץ course.txt מכיל את התוכן הבא והדפסנו רק את המילה השנייה של כל שורה בקובץ זה.

תכנות ג'אווה CSE201
מבנה הנתונים של CSE303
תכנות Unix CSE408#!/bin/bash
# התסריט הבא ידפיס את המילה השנייה של כל שורה מקובץ course.txt.
# הפלט של פקודת cat יעבור לפקודה awk שתקרא את המילה השנייה
# מכל שורה.
זרק 'חתולcourse.txt| awk '{הדפס $ 2}''

#13. כיצד להכריז ולגשת למשתנה מערך ב- bash?

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

דוגמא:

#!/bin/bash

# הכריז על מערך מספרי פשוט
arr1=(CodeIgniter Laravel ReactJS)

# הדפס את ערך האלמנט הראשון של $ arr1
זרק $ {arr1 [0] {

# הכריז על מערך מספרי באמצעות הפקודה declare
לְהַכרִיז arr2=(HTML CSS JavaScript)

# הדפס את ערך האלמנט השני של $ arr2
זרק $ {arr2 [1]}

# הכריז על מערך אסוציאטיבי באמצעות הצהרת הצהרה
לְהַכרִיז arr3=( [מִסגֶרֶת]= Laravel[CMS]= וורדפרס[סִפְרִיָה]= JQuery)

# הדפס את ערך האלמנט השלישי של $ arr3
זרק $ {arr3 [ספרייה]}

ניתן לגשת לכל מרכיבי המערך באמצעות כל לולאה או סמל '*' כאינדקס מערך.

#14. כיצד ניתן להשתמש בהצהרות מותנות ב- bash?

המשפט המותנה הנפוץ ביותר ברוב שפות התכנות הוא ה- if-elseif-else הַצהָרָה. התחביר של אם-אחר-אחר הצהרה ב- bash קצת שונה משפות תכנות אחרות. 'אם' ניתן להכריז על הצהרה בשתי דרכים בתסריט bash וכל סוג של 'אם' יש לסגור את הבלוק באמצעות 'לִהיוֹת' . 'אם' ניתן להגדיר את המשפט על ידי סוגריים שלישיים או סוגריים ראשונים כמו שפות תכנות אחרות.

תחביר:
ל.

אם [מַצָב];
לאחר מכן
הצהרות
לִהיוֹת

ב.

אם [מַצָב];לאחר מכן
הצהרות1
אַחֵר
הַצהָרָה2
לִהיוֹת

ג.

אם [מַצָב];לאחר מכן
הַצהָרָה1
אליף[מַצָב];לאחר מכן
הַצהָרָה2
….
אַחֵר
הצהרה נ
לִהיוֹת

דוגמא:

#!/bin/bash

# הקצה ערך ל- $ n
נ=30
# בדוק ש- $ n עולה על 100 או לא
אם [ $ n -גט 100 ];לאחר מכן
זרק '$ nפחות מ 100 '
# בדוק מזהה $ n גדול מ- 50 או לא
אליף [ $ n -גט חמישים ];לאחר מכן
זרק '$ nפחות מ 50 '
אַחֵר
זרק '$ nפחות מ 50 '
לִהיוֹת

#15. כיצד להשוות ערכים ב- bash?

ניתן להשתמש בשישה סוגים של אופרטורי השוואה ב- bash להשוואת ערכים. ישנן שתי דרכים להשתמש באופרטורים אלה ב- bash בהתאם לסוג הנתונים. אלה מוזכרים להלן.

השוואת מחרוזות השוואה שלמה תיאור
== -משווה הוא משמש לבדיקת שוויון
! = -נוֹלָד הוא משמש לבדיקת אי שוויון
< -lt משתמשים בו לבדוק שהערך הראשון פחות מהערך השני או לא
> -גט משתמשים בו לבדוק שהערך הראשון גדול מהערך השני או לא
<= משתמשים בו לבדוק שהערך הראשון פחות או שווה לערך השני או לא
> = -לָתֵת משתמשים בו לבדוק שהערך הראשון גדול או שווה לערך השני או לא

דוגמא:

#!/bin/bash
# אתחל $ n
נ=130
אוֹ='אֲפִילוּ'
# בדוק ש $ n גדול או שווה ל -100 או אם אינך משתמש ב- ‘–ge’.
אם [ $ n -לָתֵת 100 ];לאחר מכן
זרק '$ nגדול או שווה ל 100 '
אַחֵר
זרק '$ nפחות מ 100 '
לִהיוֹת
# בדוק ש $ n שווה או מוזר באמצעות אופרטור '=='
אם (( $ o=='אֲפִילוּ' ));לאחר מכן
זרק 'המספר שווה'
אַחֵר
זרק 'המספר מוזר'
לִהיוֹת

#16. איזו הצהרה מותנית יכולה לשמש כחלופה לאמירות if-elseif-else ב- bash?

'מקרה' הצהרה יכולה לשמש כתחליף tp אם-אחרת-אם הַצהָרָה. התחביר עבור 'מקרה' הצהרה בתסריטים bash שונה מ- מארז מתג הצהרה של שפות תכנות אחרות. 'מקרה' הבלוק נסגר על ידי 'Esac' הצהרה בבאש. לא ' לשבור 'משתמשים באמירה בפנים' מקרה 'בלוק לסיום מהבלוק.

תחביר:

מקרה ב
דפוס התאמה1)פקודות;;
דפוס התאמה2)פקודות;;
……
דפוס התאמה נ)פקודות;;
esac

דוגמא:

#!/bin/bash
#התחל את הכרטיס המשתנה $
כַּרְטִיס=101
# השווה את הערך של כרטיס $ עם 23, 101 ו- 503
מקרה כרטיס $ ב
2. 3)
# הדפס הודעה אם הערך הוא 23
זרק 'קיבלת את הפרס הראשון';;
101)
# הדפס הודעה אם הערך הוא 101
זרק 'קיבלת את הפרס השני';;
503)
# הדפס הודעה אם הערך הוא 503
זרק 'קיבלת את הפרס השלישי';;
*)
# הדפס הודעה אם הערך אינו תואם 23, 101 ו- 503
זרק 'סליחה, נסה לפעם הבאה'
יְצִיאָה 0;;
esac

#17. באילו סוגים שונים של לולאות ניתן להשתמש ב- bash?

שלושה סוגים של לולאות נתמכים על ידי סקריפט bash. אלו הם בעוד, בשביל ו עד לולאות. לולאות בבאש בודקות את המצב בתחילת הלולאה. בזמן לולאה עובדת עד שהתנאי נשאר נכון ו עד לולאה פועלת עד שהתנאי נשאר שקר. ישנן שתי דרכים לשימוש ל לוּלָאָה. אחד הוא כללי ל לולאה המכילה שלושה חלקים ועוד אחת ב לוּלָאָה. השימושים בשלוש הלולאות הללו מוצגים בדוגמה הבאה.

דוגמא:

#!/bin/bash
# אתחל $ n
נ=5
# חשב את הריבוע של 5-1 באמצעות לולאת while
בזמן [ $ n -גט 0 ]
לַעֲשׂוֹת
sqr= $((נ*נ))
זרק 'הריבוע של$ nהוא$ מרובע'
((n--))
בוצע

# חשב את הריבוע של 5-1 באמצעות לולאה
ל (( אני=5; אני>0; אני--))
לַעֲשׂוֹת
sqr= $((אני*אני))
זרק 'הריבוע של$ iהוא$ מרובע'
בוצע

# אתחל $ x
איקס=5

# חשב את הריבוע של 5-1 בעזרת לולאה
עד [ $ x 0 ]
לַעֲשׂוֹת
sqr= $((איקס*איקס))
זרק 'הריבוע של$ xהוא$ מרובע'
((איקס--))
בוצע

#18. כיצד ניתן להכריז על תת -שגרות ולהכנות אותן בשפה האזרחית?

ב- bash פונקציה או פרוצדורה נקראת תת שגרה. ההכרזה והקריאה של תת -שגרה בבאש שונה משפות אחרות. אין להכריז על טיעון בתת -שגרות בניגוד לשפות תכנות סטנדרטיות אחרות. אך ניתן להגדיר משתנים מקומיים בתוך תת -השגרה באמצעות ה- 'מְקוֹמִי' מילת מפתח.

דוגמא:

#!/bin/bash
# אתחל את המשתנה $ x ו- $ y שהם עולמיים
איקס=10
ו=35

# הצהירו על הפונקציה
myFunc() {
# הצהיר על המשתנה המקומי $ x
מְקוֹמִי איקס=חֲמֵשׁ עֶשׂרֵה

# הקצה מחדש את המשתנה הגלובלי $ y
ו=25

# חשב את סכום $ x ו- $ y
עם= $((x + y))

# הדפס את סכום המשתנה המקומי, $ x, ומשתנה גלובלי, $ y
זרק 'הסכום של$ xו$ ישווה ל$ z'
}

# התקשר לפונקציה
myFunc

# הדפס את סכום המשתנים הגלובליים, $ x ו- $ y
זרק 'הסכום של$ xו$ ישווה ל$ z'

#19. כיצד לחתוך ולהדפיס חלק כלשהו של נתוני מחרוזת ב- bash?

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

דוגמא:

#!/bin/bash
# אתחל ערך מחרוזת למחרוזת $
חוּט='שפת סקריפטים של פייתון'
# גזור את ערך המחרוזת מהמיקום 7 עד סוף המחרוזת
זרק $ {string: 7}
# גזור את ערך המחרוזת של 9 תווים מהמיקום 7
זרק $ {string: 7: 9}
# גזור את ערך המחרוזת מ -17 ל -20
זרק $ {string: 17: -4}

#20. ציין כמה דרכים לביצוע פעולות אריתמטיות בבאש?

ניתן לבצע פעולות אריתמטיות במספר דרכים בבאש. 'תן', 'expr', 'bc' ו סוגריים כפולים הן הדרכים הנפוצות ביותר לביצוע פעולות אריתמטיות בבאש. השימושים של פקודות אלה מוצגים בדוגמה הבאה.

דוגמא:

#!/bin/bash
# חישוב החיסור באמצעות expr והרחבת פרמטרים
var1= $( expr 120-100 )
# הדפס את התוצאה
זרק $ var1
# חשב את התוספת באמצעות הפקודה let
לתת var2=200+300
# הדפס את התוצאה
זרק $ var2
# חשב והדפס את ערך החלוקה באמצעות 'bc' כדי לקבל את התוצאה
# עם ערך חלקי
זרק 'סולם = 2; 44/7 ' | לִפנֵי הַסְפִירָה
# חשב את ערך הכפל באמצעות סוגריים כפולים
var3= $(( 5*3 ))
# הדפס את התוצאה
זרק $ var3

#21. כיצד לבדוק אם קיימת ספרייה או לא באמצעות bash?

לבש יש פקודות בדיקה רבות כדי לבדוק אם קיים או לא קיים קובץ או ספרייה ואת סוג הקובץ. '-D' אפשרות משמשת עם נתיב ספרייה כהצהרה מותנית כדי לבדוק אם הספרייה קיימת או לא ב- bash. אם הספרייה קיימת, היא תחזור נכון אחרת היא תחזיר שקר.

דוגמא:

#!/bin/bash
# הקצה את הספרייה עם נתיב במשתנה, $ path
נָתִיב='/home/ubuntu/temp'
# בדוק שהספרייה קיימת או לא
אם [ -d 'נתיב $' ];לאחר מכן
# הדפס הודעה אם קיימת הספרייה
זרק 'מדריך קיים'
אַחֵר
# הדפס הודעה אם הספרייה אינה קיימת
זרק 'מדריך לא קיים'
לִהיוֹת

#22. כיצד ניתן לסיים סקריפט bash מבלי לבצע את כל ההצהרות?

שימוש 'יְצִיאָה' פקודה, ניתן לסיים סקריפט bash מבלי לבצע את כל ההצהרות. התסריט הבא יבדוק אם קיים קובץ מסוים או לא. אם הקובץ קיים, הוא ידפיס את כל התווים של הקובץ ואם הקובץ לא קיים אז הוא יסיים את התסריט על ידי הצגת הודעה.

דוגמא:

#!/bin/bash

# אתחל את שם הקובץ למשתנה, $ file name
שם קובץ='course.txt'

# בדוק אם הקובץ קיים או לא באמצעות האפשרות -f
אם [ '$ קובץ' ];לאחר מכן
# הדפס הודעה אם הקובץ קיים
זרק '$ קובץקיים '
אַחֵר
# הדפס הודעה אם הקובץ אינו קיים
זרק '$ קובץלא קיים'
# הפסק את התסריט
יְצִיאָה 1
לִהיוֹת

# ספרו את אורך הקובץ אם הקובץ קיים
אורך='שירותים $ קובץ'

# הדפס את אורך הקובץ
זרק 'סה'כ תווים -אורך $'

#23. מהם השימושים של הצהרות שבירה והמשך ב- bash?

לשבור הצהרה משמשת לסיום מלולאה מבלי להשלים את האיטרציה המלאה על בסיס תנאי ו לְהַמשִׁיך משפט משמש בלולאה כדי להשמיט כמה הצהרות המבוססות על תנאי. השימושים של לשבור ו לְהַמשִׁיך הצהרות מוסברות בדוגמה הבאה.

דוגמא:

#!/bin/bash
# אתחל את המשתנה $ i ל- 0 כדי להתחיל את הלולאה
אני=0
# הלולאה תחזור על עצמה 10 פעמים
בזמן [ $ i 10 ]
לַעֲשׂוֹת
# הגדל את הערך $ i ב -1
((i ++))
# אם הערך של $ i שווה ל -8 אז סיים את הלולאה באמצעות משפט 'הפסקה'
אם [ $ i -משווה 8 ];לאחר מכן
לשבור;
לִהיוֹת
# אם הערך של $ i גדול מ- 6 השמיט את המשפט האחרון של הלולאה
# באמצעות הצהרת המשך
אם [ $ i -לָתֵת 6 ];לאחר מכן
לְהַמשִׁיך;
לִהיוֹת
זרק 'הערך הנוכחי של i =$ i'
בוצע

# הדפס את הערך של $ i לאחר סיום הלולאה
זרק 'עכשיו הערך של i =$ i'

#24. כיצד להפוך קובץ bash להפעלה?

ניתן לבצע קבצי bash ניתנים להפעלה באמצעות 'Chmod' פקודה. ניתן להגדיר הרשאת הפעלה באמצעות '+ X' ב chmod פקודה עם שם קובץ הסקריפט. ניתן לבצע קובצי Bash ללא המפורש 'לַחֲבוֹט' הפקודה לאחר הגדרת סיבי הביצוע לקובץ זה.

דוגמא:

# הגדר את ביט הביצוע
$chmod+ x שם קובץ.ש

# הפעל את קובץ ההפעלה
$./שם קובץ.ש

#25. ציין כמה אפשרויות המשמשות לבדיקת קבצים

אפשרויות רבות זמינות ב- bash לבדיקת קובץ. כמה אפשרויות מוזכרות להלן.

אוֹפְּצִיָה תיאור
הוא משמש לבדיקת הקובץ הקיים והוא קובץ רגיל.
הוא משמש לבדיקת הקובץ קיים בלבד.
-r הוא משמש לבדיקת הקובץ ויש לו הרשאת קריאה.
הוא משמש לבדיקת הקובץ וקיים עליו הרשאת כתיבה.
-איקס הוא משמש לבדיקת הקובץ קיים ויש לו הרשאת ביצוע.
-d הוא משמש לבדיקת המדריך קיים.
הוא משמש לבדיקת הקובץ והוא מהווה קישור סמלי.
-S הוא משמש לבדיקת הקובץ הקיים והוא שקע.
הוא משמש לבדיקת הקובץ שהוא מכשיר חסימה.
הוא משמש כדי לבדוק שהקובץ אינו בגודל אפס.
-לְמָשָׁל בעבר הוא בדק שהתוכן של הקובץ הראשון חדש יותר מהקובץ השני. לדוגמה, file1 -nt file2 מציין כי file1 הוא חדש יותר מאשר file2.
-לא הוא נהג לבדוק אם התוכן של הקובץ הראשון ישן יותר מהקובץ השני. לדוגמה, file1 -ot file2 מציין שקובץ 1 ישן יותר מקובץ 2.
-ef הוא משמש כדי לבדוק ששני קישורים קשים מתייחסים לאותו קובץ. לדוגמה, flink1 -ef flink2 מציין כי flink1 ו- flink2 הם קישורים קשים ושניהם מתייחסים לאותו קובץ.

#26. למה הכוונה 'bc' וכיצד ניתן להשתמש בפקודה זו בתשחץ?

הצורה המלאה של 'bc' היא מחשבון Bash לבצע פעולות אריתמטיות בצורה מדויקת יותר ב- bash. החלק השברירי מושמט אם כל פעולה אריתמטית מתבצעת ב- bash באמצעות 'אקספר' פקודה. ניתן לעגל את החלק השבר גם באמצעות סוּלָם ערך עם 'לִפנֵי הַסְפִירָה' פקודה.

דוגמא:

#!/bin/bash
# חשב את החלוקה ללא הערך השברירי
זרק '39 / 7 ' | לִפנֵי הַסְפִירָה

# חשב את החלוקה עם ערך השבר המלא
זרק '39 / 7 ' | לִפנֵי הַסְפִירָה

# חשב את החלוקה בשלוש ספרות אחרי הנקודה העשרונית
זרק 'סולם = 3; 39/7 ' | לִפנֵי הַסְפִירָה

#27. כיצד ניתן להדפיס שורה מסוימת של קובץ ב- bash?

ישנן דרכים רבות להדפיס שורה מסוימת ב- bash. איך 'אוו', 'סד' ו 'זָנָב' ניתן להשתמש בפקודות להדפסת שורה מסוימת של קובץ ב- bash המוצג בדוגמה הבאה.

דוגמא:

#!/bin/bash

# קרא ושמור את השורה הראשונה מהקובץ באמצעות הפקודה `awk` עם משתנה NR
שורה 1='awk '{if (NR == 1) הדפס $ 0}'course.txt'
# הדפס את השורה
זרק שורה $ 1

# קרא את השורה השנייה מהקובץ באמצעות הפקודה `sed` עם האפשרות -n
שורה 2='sed 2p course.txt'
# הדפס את השורה
זרק שורה $ 2

# קרא את השורה האחרונה מהקובץ באמצעות הפקודה `tail 'עם האפשרות -n
קו 3='זָנָב 1course.txt'
# הדפס את הקובץ
זרק שורה $ 3

#28. מהו IFS?

IFS הוא משתנה מעטפת מיוחד. הצורה המלאה של IFS הוא מפריד שדה פנימי,
הוא משמש כמפריד כדי להפריד את המילה משורת הטקסט. הוא משמש בעיקר לפיצול מחרוזת, קריאת פקודה, החלפת טקסט וכו '.

דוגמא:

#!/bin/bash
# הצהיר ':' כתוחם לפצל את הטקסט
IFS=':'
# הקצה נתוני טקסט עם ':' לטקסט $
טֶקסט='אדום: ירוק: כחול'
# עבור לולאה תקרא כל מילה לאחר פיצול הטקסט המבוסס על IFS
לשעותב $ טקסט;לַעֲשׂוֹת
# הדפס את המילה
זרק שעות
בוצע

#29. כיצד לברר את אורך נתוני המחרוזת?

'Expr', 'wc' ו 'Awk' ניתן להשתמש בפקודות כדי לברר את אורך נתוני המחרוזת ב- bash. 'אקספר' ו 'Awk' פקודות משתמשות אורך אוֹפְּצִיָה, 'שירותים' שימוש בפקודה '–C' אפשרות לספור את אורך המחרוזת.

דוגמא:

השימושים בפקודות הנ'ל מוצגים בתסריט הבא.

#!/bin/bash
# ספרו אורך באמצעות אפשרות 'אורך expr'
זרק 'exprאורך'אני אוהב PHP''
# ספרו אורך באמצעות הפקודה 'wc'
זרק 'אני אוהב את באש' | שירותים
# ספרו אורך באמצעות הפקודה `awk`
זרק 'אני אוהב את פייתון' | awk '{print length}'

#30. כיצד להריץ סקריפט bash מרובה במקביל?

ניתן לבצע מספר סקריפטים bash במקביל באמצעות נועהופ פקודה. כיצד ניתן לבצע מספר קבצי bash במקביל מתיקייה מוצג בדוגמה הבאה.

דוגמא:

# הקצה שם תיקייה עם הנתיב במשתנה $ dir המכיל
# קבצי bash מרובים
לך='בית/אובונטו/טמפ'

# עבור לולאה יקרא כל קובץ מהספרייה ויבצע במקביל
לתַסרִיטבלך/ *.sh
לַעֲשׂוֹת
נועהופ לַחֲבוֹט 'תסריט של $' &
בוצע

סיכום:

רוב שאלות הראיונות הבסיסיות לראיון תסריט bash מתוארות במאמר זה עבור הקוראים שרוצים להתחיל קריירה כמתכנת bash.