סקריפטים של Bash שימושיים עבור אוטומציה של משימות, ותגלו שהם מצוינים לבניית יישומי שורת פקודה פשוטים. מעטפת Bash מפרשת סקריפטים של Bash, כך שלא תצטרך להתקין תלות כלשהי כדי לכתוב ולהפעיל אותם. סקריפטים של Bash הם גם ניידים מכיוון שרוב מערכות ההפעלה מבוססות יוניקס משתמשות באותו מתורגמן מעטפת.
ידע בסקריפטים של Bash הוא חובה לכל מפתח, במיוחד אם אתה עובד עם מערכות מבוססות יוניקס.
משתנים בבאש
משתני Bash הם תלויי רישיות. כדי להכריז על משתנים, השתמש בסימן שוויון (=) עם השם משמאל וערך מימין:
STATE=וושינגטון
הערך שההצהרה הזו מייחסת לו מדינה היא מילה אחת. אם אתה צריך רווחים בערך שלך, השתמש במירכאות סביבו:
STATE="צפון אריזונה"
תצטרך להשתמש בסימן דולר ($) קידומת למשתני התייחסות במשתנים או הצהרות אחרות:
STATE=וושינגטון
LOCATION="המיקום שלי הוא $STATE"
הדפסת ערכי בש
ישנן מספר דרכים להדפיס משתנים ב-Bash. אתה יכול להשתמש ב הֵד פקודה עבור פלט בסיסי או בסגנון C printf פקודה לעיצוב מחרוזת.
STATE=וושינגטון
LOCATION="המיקום שלי הוא $STATE"
הֵד$LOCATION
לאחר הכרזת ה מדינה משתנה, הסקריפט הזה מגדיר מקום על ידי הפניה של STATE. אם אז משתמש ב-Echo כדי להדפיס את הערך הסופי של המשתנה LOCATION.
ה printf מילת מפתח מאפשרת לך להשתמש בפעלי עיצוב כדי להוציא נתונים. הפעלים של עיצוב המחרוזת דומים לאלה ב-C ו-Go אך עם פעלים מוגבלים.
פועל | פונקציונליות |
---|---|
%c | מדפיס תווים בודדים |
%o | מדפיס אוקטדצימלים |
%s | מדפיס מחרוזות, ללא תלות במעטפת |
%איקס | מדפיס הקסדצימלי באותיות קטנות |
%איקס | מדפיס הקסדצימלי באותיות רישיות |
%d | מדפיס מספרים שלמים |
%e | מדפיס רעיון מדעי צף באותיות קטנות |
%E | מדפיס רעיון מדעי צף באותיות רישיות |
%f | מדפיס מספרי נקודה צפה |
%% | מדפיס סמל אחוז בודד. |
הנה דוגמה לשימוש הפועל עם ה הדפס מילת מפתח.
STATE=לאגוס
printf "המיקום שלי הוא %s" $STATE
ה printf הפונקציה תחליף את מדינה משתנה במיקום של %s פועל, והפלט יהיה "המיקום שלי הוא לאגוס".
אתה יכול להעיר הערות ב-Bash עם ה-hash או הפאונד (#) סמל. המעטפת מתעלמת אוטומטית מהערות.
#!/bin/bash
# STATE=וושינגטון
# LOCATION="המיקום שלי הוא $STATE"
אין הערות מרובות שורות. רוב ה-IDEs ועורכי הטקסט מאפשרים לך להגיב עם קיצור הדרך Ctrl/Command + לוכסן קדימה(/). אתה אמור להיות מסוגל להשתמש בקיצור הדרך כדי ליצור הערות מרובות בשורה אחת.
קבלת קלט משתמש ב-Bash
כמו שפות תכנות רבות אחרות, אתה יכול לקבל קלט משתמשים ב-Bash כדי להפוך את התוכניות/סקריפטים שלך לאינטראקטיביים יותר. אתה יכול להשתמש ב לקרוא פקודה כדי לבקש קלט של המשתמש.
לקרוא תְגוּבָה
במקרה זה, ה תְגוּבָה המשתנה יחזיק את הקלט של המשתמש בעת המסירה.
הד "מה אתה רוצה?:"
לקרוא תגובה
echo $response
בקשת הקלט של המשתמש תהיה בשורה חדשה בדוגמה למעלה.
אתה יכול להוסיף את -נ דגל ל הֵד הדפס משפט כדי לשמור על השורה שבה המשתמש מזין קלט.
echo -n "מה אתה רוצה."
לקרוא תגובה
echo $response
הכרזת מערכים בבאש
מערכים בבאש הם בדיוק כמו רוב השפות. אתה יכול להכריז על משתנה מערך ב-Bash על ידי ציון האלמנטים בסוגריים.
מדינות=('ארצות הברית' 'רוסיה' 'אוקראינה', "אנגליה", "טייוואן", "סין")
גישה למערך באמצעות הפניה לשם המשתנה תביא את האלמנט הראשון. אתה יכול לגשת למערך כולו על ידי שימוש בסימן הכוכבית בתור האינדקס.
echo ${מדינות[*]}
אתה יכול גם לציין את האינדקס של המערך כדי לגשת לאלמנט ספציפי. האינדקס של מערך מתחיל באפס.
הֵד "${מדינות[4]}"
הצהרות מותנות בבאש
בש מספק תנאים לקבלת החלטות בתוכניות.
הנה האנטומיה של הצהרת אם-אחר ב-Bash. תצטרך להשתמש בנקודה-פסיק כדי לציין את סוף התנאי.
אם [[תנאי]]; לאחר מכן
הֵד הצהרה 1
אליף [[תנאי]]; לאחר מכן
הֵד הצהרה 2
אַחֵר [[תנאי]]; לאחר מכן
הֵד הצהרה 3
fi
אתה חייב לסיים כל אם הצהרה עם ה fi מילת מפתח.
אם [ 1 == 2 ]; לאחר מכן
הֵד אחד
אליף [ 2 == 3 ]; לאחר מכן#אחר-אם
הֵד שתיים
אַחֵר [ 4 > 3 ];
הֵד "נכון, 3"
fi
אתה יכול להשתמש בהצהרות מקרה בתוכניות Bash שלך באמצעות ה מקרה מילת מפתח. תצטרך לציין את הדפוס ואחריו סוגריים סיום לפני ההצהרה.
CITY=לאגוס
מקרה$CITYב
"וושינגטון") # תבנית
הֵד "ארצות הברית" הצהרה אחת
;; # סוף מקרה
"לאגוס" | "אבוג'ה")
הֵד "ניגריה"
;;
"יוהנסבורג" | "קייפטאון")
הֵד "דרום אפריקה"
;;
*) # דפוס ברירת מחדל
הֵד "אנטארקטיקה" # הצהרת ברירת מחדל
;;
esac# סוף הצהרת המקרה
אתה יכול להגדיר את מקרה ברירת המחדל באמצעות סימן הכוכבית (*) כתבנית. הצהרות המקרה חייבות להסתיים ב- esac מילת מפתח.
לולאות בבאש
בהתאם לצרכים שלך, אתה יכול להשתמש בלולאת while, range for-loop, או בסגנון C עבור לולאה עבור פעולות חוזרות.
הנה דוגמה ל-C style for-loop. For-לולאות חייבות להסתיים ב- בוצע מילת מפתח, ואתה חייב לסיים את הצהרת for עם נקודה-פסיק ואחריו לַעֲשׂוֹת מילת מפתח.
ל ((a = 0; a < 10; a+2)); לַעֲשׂוֹת
הֵד$a
בוצע
טווח הלולאה שימושי לעבודה עם קבצים ופעולות רבות אחרות. תצטרך להשתמש ב- ב מילת מפתח עם הטווח עבור לולאה.
ל אני ב {1..7}; לַעֲשׂוֹת
הֵד$1
בוצע
הנה לולאה אינסופית פשוטה כדי להדגים את Bash בזמן לולאות בפעולה.
שם=1
בזמן [1 -le 5] # בעוד 1 < 5
לַעֲשׂוֹת
הֵד$name
בוצע
ה -לה במשפט התנאי הוא האופרטור הבינארי עבור פחות מ.
פונקציות ב-Bash
אתה לא צריך מילות מפתח כדי להצהיר על פונקציות ב-Bash. אתה יכול להכריז על פונקציות עם השם ולאחר מכן בסוגריים לפני גוף הפונקציה.
ספריית_עבודה_הדפסה() {
הֵד$PWD#קריאה לפקודה PWD מהסקריפט
}
הֵד "אתה ב $(print_working_directory)"
פונקציות יכולות להחזיר משתנים ב-Bash. כל מה שאתה צריך זה לַחֲזוֹר מילת מפתח.
ספריית_עבודה_הדפסה() {
לַחֲזוֹר$PWD
}
ה ספריית_עבודה_הדפסה הפונקציה מחזירה את ספריית העבודה של הקובץ.
אתה יכול לכתוב סקריפטים של מעטפת בשפות אחרות
Bash היא לא השפה היחידה שבה אתה יכול להשתמש כדי ליצור אינטראקציה עם המעטפת של מערכת ההפעלה שלך או לבנות יישומי שורת פקודה. אתה יכול להשתמש בשפות רבות אחרות כמו Go, Python, Ruby ו-Rust.
במערכות הפעלה רבות מותקן Python3 מראש, ו-Python היא שפה רווחת. אם אתה צריך אפילו יותר פונקציונליות ממה שסקריפטים של Bash יכולים להציע, שקול להשתמש ב-Python.