באש – הבדלי גרסאות

תוכן שנמחק תוכן שנוסף
אין תקציר עריכה
פישוט הערך והסרת תבנית לפישוט
שורה 1:
{{פישוט}}
{{תוכנה
|שם=Bash
שורה 8 ⟵ 7:
|קטגוריה=[[מעטפת פקודה]]
|אתר אינטרנט=[http://www.gnu.org/software/bash/ אתר גנו]}}
'''באש''' (ב[[אנגלית]]: '''bashBash''') היא [[מעטפת פקודה]] למערכות [[UNIX|יוניקס]], ולמערכות דמויות יוניקס (לדוגמה: [[גנו/לינוקס]]) מאת פרויקט [[גנו (מערכת הפעלה)|גנו]]. המעטפת פותחה בשנת 1989 על ידי [[בריאן פוקס]], בניצוחו של [[ריצ'רד סטולמן]], כמיזם תוכנה חופשית וכתחליף ל-[[Bourne Shell]], עבור פרויקט גנו. ברוב מערכות גנו/לינוקס, מופצת באש כברירת מחדל ומהווה בסיס חיוני למערכת (יחד עם כלים בסיסיים נוספים, גם כן מבית גנו).
 
==מקור שם התוכנה==
המעטפת פותחה בשנת 1989 על ידי [[בריאן פוקס]], בניצוחו של [[ריצ'רד סטולמן]], כמיזם תוכנה חופשית וכתחליף ל-Bourne Shell (המוכרת בשם המקוצר sh) עבור פרויקט גנו. שם המעטפת נגזר משם המעטפת Bourne shell שהופצה לראשונה בגרסה 7 של מערכת ההפעלה [[UNIX]] בשנת 1979, שקדמה לה. תחביר הפקודות של Bash הוא הרחבה של Bourne Shell ומציע מספר שיפורים לעומתו שביניהם: עריכת פקודות, הסרת ההגבלה על גודל הזיכרון המוקצה לשמירת היסטוריות הפקודות שבוצעו דרך המעטפת, שליטה בתהליכי משתמש (jobs), כתיבת פונקציות, יצירת קיצורי שם לפקודות מורכבות (aliases), עבודה עם [[מערך (מבנה נתונים)|מערכים]] ללא הגבלת גודל, ביצוע חישובים [[אריתמטיקה|אריתמטיים]] מבסיס 2 עד 64, שמירה לזיכרון מחסנית של מסלולים בעץ הקבצים (מנגון pushd/popd), תמיכה במערכים אסוציאטיביים (מערכים שהגישה אליהם אינה בעזרת אינדקס מספרי; החל מגרסה 4).
שם המעטפת נגזר משם המעטפת Bourne shell שהופצה לראשונה בגרסה 7 של מערכת ההפעלה [[UNIX]] בשנת 1979. משמעות השם '''Bash''' היא [[ראשי תיבות]] של '''Bourne-again shell''', כ[[משחק מילים]] על [[Bourne Shell]]. המשפטשם נשמעהמעטפת כמובתרגום לעברית: "מעטפת [(פקודה]) שנולדה מחדש"{{הערה|[http://www.gnu.org/software/bash/manual/html_node/What-is-Bash_003f.html#What-is-Bash_003f הסבר על Bash] מתוך התיעוד של Bash}}
 
== מאפיינים טכניים ==
ברוב מערכות גנו/לינוקס, מופצת Bash כברירת מחדל ומהווה בסיס חיוני למערכת (יחד עם כלים בסיסיים נוספים, גם כן מבית GNU). המעטפת מופצת גם עם מערכת [[Mac OS X]] מבית [[אפל]] (גם היא מערכת דמוית יוניקס, המבוססת על [[BSD]]). ניתן להריץ את המעטפת גם על מערכת ההפעלה [[Windows]] מבית [[מיקרוסופט]] בעזרת [[Cygwin]], אך המעטפת לא מיועדת לכך. בשנת 2016 מיקרוסופט הוציאה פתרון להרצת המעטפת במערכת ההפעלה [[Windows 10|חלונות 10]] באמצעות כלי ייעודי מתוצרתה שפותח ביחד עם [[קנוניקל]] מפיצת [[אובונטו (לינוקס)|Ubuntu]]{{הערה|{{קישור כללי|הכותב=איתי מקמל|כתובת=http://www.tgspot.co.il/microsoft-announces-windows-10-anniversary-update/|כותרת=מיקרוסופט הכריזה על עדכון גדול ל-Windows 10 שיתמוך בפקודות לינוקס|תאריך=2016-03-30|שפה=he-IL|תאריך_וידוא=2016-08-25}}}}.
 
=== שיפורים לעומת גרסאות קודמות ===
==מקור שם התוכנה==
המעטפת פותחה בשנת 1989 על ידי [[בריאן פוקס]], בניצוחו של [[ריצ'רד סטולמן]], כמיזם תוכנה חופשית וכתחליף ל-Bourne Shell (המוכרת בשם המקוצר sh) עבור פרויקט גנו. שם המעטפת נגזר משם המעטפת Bourne shell שהופצה לראשונה בגרסה 7 של מערכת ההפעלה [[UNIX]] בשנת 1979, שקדמה לה. תחביר הפקודות של Bashבאש הוא הרחבה של Bourne Shell ומציע מספר שיפורים לעומתו. בין שביניהםהשיפורים: עריכת פקודות, הסרת ההגבלה על גודל הזיכרון המוקצה לשמירת היסטוריות הפקודות שבוצעו דרך המעטפת, שליטה בתהליכי משתמש (jobs), כתיבת פונקציות, יצירת קיצורי שם לפקודות מורכבות (aliases), עבודה עם [[מערך (מבנה נתונים)|מערכים]] ללא הגבלת גודל, ביצוע חישובים [[אריתמטיקה|אריתמטיים]] מבסיס 2 עד 64, שמירה לזיכרון מחסנית של מסלולים בעץ הקבצים (מנגון pushd/popd), תמיכה במערכים אסוציאטיביים (מערכים שהגישה אליהם אינה בעזרת אינדקס מספרי; החל מגרסה 4).
משמעות השם Bash היא [[ראשי תיבות]] של '''Bourne-again shell''', כ[[משחק מילים]] על [[Bourne Shell]]. המשפט נשמע כמו "מעטפת [פקודה] שנולדה מחדש"{{הערה|[http://www.gnu.org/software/bash/manual/html_node/What-is-Bash_003f.html#What-is-Bash_003f הסבר על Bash] מתוך התיעוד של Bash}}
 
=== ממשקיות עם מערכות הפעלה נוספות ===
ברוב מערכות גנו/לינוקס, מופצת Bash כברירת מחדל ומהווה בסיס חיוני למערכת (יחד עם כלים בסיסיים נוספים, גם כן מבית GNU). המעטפת מופצת גם עם מערכת [[Mac OS X]] מבית [[אפל]] (גם היא מערכת דמוית יוניקס, המבוססת על [[BSD]]). ניתן להריץ את המעטפת גם על מערכת ההפעלה [[Windows]] מבית [[מיקרוסופט]] בעזרת [[Cygwin]], אך המעטפת לא מיועדת לכך. בשנת 2016 מיקרוסופט הוציאה פתרון להרצת המעטפת במערכת ההפעלה [[Windows 10|חלונות 10]] באמצעות כלי ייעודי מתוצרתה שפותח ביחד עם [[קנוניקל]] מפיצת [[אובונטו (לינוקס)|Ubuntu]]{{הערה|{{קישור כללי|הכותב=איתי מקמל|כתובת=http://www.tgspot.co.il/microsoft-announces-windows-10-anniversary-update/|כותרת=מיקרוסופט הכריזה על עדכון גדול ל-Windows 10 שיתמוך בפקודות לינוקס|תאריך=2016-03-30|שפה=he-IL|תאריך_וידוא=2016-08-25}}}}.
 
==Bash Scripting==
בדומה לכל מעטפת פקודה סטנדרטית, גם התחביר של Bashבאש מאפשר יצירה של [[קובץ אצווה|קובצי אצווה]]. קבצים אלה נקראים Bash Scripts ולהם צורה מובנית כפי שמדגים הסקריפט הבא:
 
<syntaxhighlight lang="bash" ">
שורה 43 ⟵ 46:
</syntaxhighlight>
 
* שורות הערה יחלו בסימן #, למעט השורה הראשונה של הקובץ המתחילה ב- !#. שורה זו שמציינתמציינת לליבת מערכת הפעלה באיזו מעטפת יש להריץ את הפקודות המופיעות בקובץ. החלק הראשון של הסקריפט מכיל קטע התניה מהצורה
* החלק הראשון של הסקריפט מכיל קטע התניה מהצורה if [...] ; then ... fi, שבודק את מספר הארגומנטים שהועברו לסקריפט משורת הפקודה בעזרת בחינה של המשתנה השמור #$. שמצייןמשתנה זה מציין את מספר הפרמטרים שמועברים לסקריפט.
* lt- הוא אופרטור השוואה המחזיר ערך אמת או שקר בהתאם לכך שהאופרנד השמאלי קטן מן האופרנד הימני. במקרה הזה נבדק שנשלחו לפחות שלושה פרמטרים משורת הפקודה. במידה ואין זה כך, מבוצע גוף הקטע המותנה שבו מודפסת הודעה בחזרה למעטפת בעזרת פקודת echo ומסתיים הסקריפט בקוד שגיאה 1 בעזרת הפקודה exit 1.
* אם הקלט נמצא תקין, ממשיך הסקריפט לביצוע קטע לולאה מהצורה for x in list ; do ... done שבמקרה זה עובר על רשימת הפרמטרים שהועברו לסקריפט דרך שורת הפקודה (בעזרת בחינה של תוכן המשתנה השמור *$) והדפסתם למעטפת על פי סדר הופעתם.
* הלולאה האחרונה שנראית בדוגמה מציגה שימוש בלולאה מותנית להדפסה ובה נבחן מספר הפרמטרים על ידי גישה למשתנה השמור #$ נוכח ביצוע פקודת shift בגוף הלולאה. הפקודה הנ"ל שמבצעתמבצעת הזזה של הפרמטרים שמועברים לסקריפט מימין לשמאל, במקום אחד בכל פעם.
* בתום הסקריפט מוחזר ערך הצלחה 0 בעזרת הפקודה exit 0.
 
==קישורים חיצוניים==