הבדלים בין גרסאות בדף "C Shell"

נוספו 289 בתים ,  לפני 10 שנים
אין תקציר עריכה
 
מעטפת הפקודה מאפשרת למשתמש לכתוב פקודות ולבצע פעולות פשוטות ב[[מחשב]], כולל [[בקרת זרימה|בקרות זרימה]] ושימוש ב[[משתנה_(תכנות)|משתנים]].
ניתן לכתוב את הפקודות ב[[קובץ|קבצים]] הנקראים [[סקריפטמפרש (תוכנה)|סקריפטים]], ולהשתמש בהם באופן דומה לשימוש ב[[קובץ הרצה|קבצי הרצה]] רגילים, כולל העברת פרמטרים, ותכונות נוספות (כגון שימוש ב[[צינור עיבוד נתונים|pipelines]] ו[[תו ג'וקר|תווי ג'וקר]]) הנתמכות על ידי כל המעטפות של סביבת יוניקס.
 
הC shell היא שיכתוב המעטפת הקודמת ששמה bourne. ה-bourne נכתבה בשפת [[אסמבלי]], לעומת C shell שנכתבה בשפת C. בנוסף לשכתוב המעטפת, C Shell יציבה יותר ומכילה מספר פקודות נוספות ותכונות כמו כינויים (aliases) והיסטוריית פקודות.
התחביר של C Shell דומה לזה של שפת הפיתוח [[C (שפת תכנות)|C]].
 
כיום השימוש C Shell הואנעשה לרוב דרך מעטפת הפקודה הקרויה tcsh, שהיא שיפור של csh הכולל תכונות חדשות נוספות כגון השלמת שמות קבצים, עריכת שורת הפקודה ועוד (אלה נלקחו משפת Tenex, ומכאן התוספת של האות t). ל-tcsh תאימות-לאחור מלאה עם C shell.
קיימות מעטפות פקודה חדשות יותר, כגון bash, להן יתרונות רבים על פני C shell, אולם השימוש בC shell עדיין נפוץ.
 
==תחביר ובקרות זרימה==
ל- C Shell יש מבנה מעטפת פקודה אופייני ליוניקס: כל שורת פקודה (או שורה בסקריפט) מתורגמת כפקודה נפרדת לביצוע, וקו נטוי שמאלי ( \ ) מייצגמסמן שורהשסט הפקודות ממשיך בשורה חדשה. השפהה[[תחביר]] עוצבהשל כךהשפה שתהיההוגדר דומהבצורה ככל הניתןדומה לשפת C ובכךעל תהיהמנת עקביתלקיים עקביות עם סביבת העבודה של המעטפת, יוניקס, שנכתבה רובה ככולה בשפת C, ומטעמי נוחות.
=== משתנים ===
בשפה ניתן להצהיר על משתנים על ידי כתיבת הפקודה:
set var=x
כאשר במקום var ייכתב שם חוקי כלשהו, ובמקום X ניתן לכתוב כל רצף של תווים.
למעשה, בC shell כל משתנה הוא [[מחרוזת (תכנות)|מחרוזת]] של תווים, כאשר ניתן להתייחס אליהםאליו כאל מספריםמספר בהתאם לצורך, ובמגבלות מסויימות.
מרגע שהוגדר משתנה הוא מוכר במעטפת עד שמתרחש אחד מהבאים:
* מוגדר משתנה בשם זהה.
* מסתיימת הרצת הסביבה הנוכחית (למשל כאשר מסתיים סקריפט שבתחילתו מוגדר כי הוא יוצר סביבה חדשה).
* מתבצעת פקודת unset var, שזה תפקידה.
בניגוד לשפת C, על מנת להתייחס לתוכן של משתנה יש להקדים לשמו את התו $. לדוגמא var$.
 
השפה תומכת גם ב[[רשימה|רשימות]] פשוטות, שהן למעשה [[מערך (מבנה נתונים)|מערך]] של מחרוזות, וניתןומאפשרת לגשת לאיבר ברשימה בצורה דומה. השפהלגישה לאאל תומכתאיבר ברשימהבמערך. מקוננתעל (כלומרמנת רשימהלבצע השמה של רשימות).רשימה ניתןאל להתייחסמשתנה למשתנהיש פשוטלהקיף כאלאת רשימההערכים באורךהדרושים 1בסוגריים.
השפה לא תומכת ברשימה מקוננת (כלומר רשימה של רשימות). ניתן להתייחס למשתנה פשוט כאל רשימה באורך 1.
בניגוד בולט לשפת C, מספור האיברים ברשימה מתחיל מ1מ-1.
=== מבנה תנאי ===
בC shell ישנן שתי דרכים לכתוב תנאי (if)