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

מתוך ויקיפדיה, האנציקלופדיה החופשית
תוכן שנמחק תוכן שנוסף
אין תקציר עריכה
אין תקציר עריכה
שורה 1: שורה 1:
'''C Shell''' (גם csh) היא [[מעטפת פקודה]] למערכות [[יוניקס]] ומערכות דמויות יוניקס (כגון הפצות [[לינוקס]] למיניהן), אשר פותחה בסוף שנות השבעים על ידי ביל ג'וי, אז סטודנט באוניברסיטת ברקלי.
'''C Shell''' (גם csh) היא [[מעטפת פקודה]] למערכות [[יוניקס]] ומערכות דמויות יוניקס (כגון הפצות [[לינוקס]] למיניהן), אשר פותחה בסוף שנות השבעים על ידי ביל ג'וי, אז סטודנט ב[[אוניברסיטת קליפורניה בברקלי|אוניברסיטת ברקלי]].


מעטפת הפקודה מאפשרת למשתמש לכתוב פקודות ולבצע פעולות פשוטות במחשב, כולל [[בקרת זרימה|בקרות זרימה]] ושימוש ב[[משתנה_(תכנות)|משתנים]].
מעטפת הפקודה מאפשרת למשתמש לכתוב פקודות ולבצע פעולות פשוטות ב[[מחשב]], כולל [[בקרת זרימה|בקרות זרימה]] ושימוש ב[[משתנה_(תכנות)|משתנים]].
ניתן לכתוב את הפקודות בקבצים הנקראים [[סקריפט|סקריפטים]], ולהשתמש בהם באופן דומה לשימוש ב[[קובץ הרצה|קבצי הרצה]] רגילים, כולל העברת פרמטרים, ותכונות נוספות (כגון שימוש ב[[צינור עיבוד נתונים|pipelines]] ו[[תו ג'וקר|תווי ג'וקר]]) הנתמכות על ידי כל המעטפות של סביבת יוניקס.
ניתן לכתוב את הפקודות ב[[קובץ|קבצים]] הנקראים [[סקריפט|סקריפטים]], ולהשתמש בהם באופן דומה לשימוש ב[[קובץ הרצה|קבצי הרצה]] רגילים, כולל העברת פרמטרים, ותכונות נוספות (כגון שימוש ב[[צינור עיבוד נתונים|pipelines]] ו[[תו ג'וקר|תווי ג'וקר]]) הנתמכות על ידי כל המעטפות של סביבת יוניקס.


הC shell היא שיכתוב המעטפת הקודמת ששמה bourne. ה-bourne נכתבה בשפת [[אסמבלי]], לעומת C shell שנכתבה בשפת C. בנוסף לשכתוב המעטפת, C Shell יציבה יותר ומכילה מספר פקודות נוספות ותכונות כמו כינויים (aliases) והיסטוריית פקודות.
הC shell היא שיכתוב המעטפת הקודמת ששמה bourne. ה-bourne נכתבה בשפת [[אסמבלי]], לעומת C shell שנכתבה בשפת C. בנוסף לשכתוב המעטפת, C Shell יציבה יותר ומכילה מספר פקודות נוספות ותכונות כמו כינויים (aliases) והיסטוריית פקודות.
שורה 11: שורה 11:


==תחביר ובקרות זרימה==
==תחביר ובקרות זרימה==
השפה עוצבה כך שתהיה דומה ככל הניתן לשפת C ובכך תהיה עקבית עם סביבת העבודה של המעטפת, יוניקס, שנכתבה רובה ככולה בשפת
ל- C Shell יש מבנה מעטפת פקודה אופייני ליוניקס: כל שורת פקודה (או שורה בסקריפט) מתורגמת כפקודה נפרדת לביצוע, וקו נטוי שמאלי ( \ ) מייצג שורה חדשה. השפה עוצבה כך שתהיה דומה ככל הניתן לשפת C ובכך תהיה עקבית עם סביבת העבודה של המעטפת, יוניקס, שנכתבה רובה ככולה בשפת C.
C.
=== משתנים ===
=== משתנים ===
בשפה ניתן להצהיר על משתנים על ידי כתיבת הפקודה:
בשפה ניתן להצהיר על משתנים על ידי כתיבת הפקודה:
שורה 65: שורה 64:


=== לולאת While ===
=== לולאת While ===
בלולאה זו מחושב ביטוי תנאי, והלולאה מתצעת כל עוד ערכו אמת.
מבנה הלולאה:
מבנה הלולאה:
<div style="direction: ltr;">
<div style="direction: ltr;">
שורה 90: שורה 90:
3
3
Yossi
Yossi




==תכונות==
ל- C Shell יש מבנה מעטפת פקודה אופייני ליוניקס: כל שורת פקודה (או שורה בסקריפט) מתורגמת כפקודה נפרדת לביצוע, וקו נטוי שמאלי ( \ ) מייצג שורה חדשה.

===תכונות חדשות===
תכונות אלה הוצגו לראשונה ב- C Shell, וכיום רובן מוכרות בעולם היוניקס וה[[לינוקס]].


==קישורים דומים==
==קישורים דומים==

[[bash]]
[[bash]]

[[tcsh]]


== קישורים חיצוניים ==
== קישורים חיצוניים ==
* [http://www.eng.hawaii.edu/Tutor/csh.html ספר הדרכה]
* [http://www.eng.hawaii.edu/Tutor/csh.html ספר הדרכה]
* [http://www.underwar.co.il/document-details.asp?id=50 C Shell חלק ראשון]
* [http://www.underwar.co.il/document-details.asp?id=50 C Shell חלק ראשון]
* [http://www.underwar.co.il/document-details.asp?id=51 C Shell חלק שני]
* [http://www.underwar.co.il/document-details.asp?id=51 C Shell חלק שני]






גרסה מ־02:37, 14 ביולי 2010

C Shell (גם csh) היא מעטפת פקודה למערכות יוניקס ומערכות דמויות יוניקס (כגון הפצות לינוקס למיניהן), אשר פותחה בסוף שנות השבעים על ידי ביל ג'וי, אז סטודנט באוניברסיטת ברקלי.

מעטפת הפקודה מאפשרת למשתמש לכתוב פקודות ולבצע פעולות פשוטות במחשב, כולל בקרות זרימה ושימוש במשתנים. ניתן לכתוב את הפקודות בקבצים הנקראים סקריפטים, ולהשתמש בהם באופן דומה לשימוש בקבצי הרצה רגילים, כולל העברת פרמטרים, ותכונות נוספות (כגון שימוש בpipelines ותווי ג'וקר) הנתמכות על ידי כל המעטפות של סביבת יוניקס.

הC shell היא שיכתוב המעטפת הקודמת ששמה bourne. ה-bourne נכתבה בשפת אסמבלי, לעומת C shell שנכתבה בשפת C. בנוסף לשכתוב המעטפת, C Shell יציבה יותר ומכילה מספר פקודות נוספות ותכונות כמו כינויים (aliases) והיסטוריית פקודות. התחביר של C Shell דומה לזה של שפת הפיתוח 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. בניגוד בולט לשפת C, מספור האיברים ברשימה מתחיל מ1.

מבנה תנאי

בC shell ישנן שתי דרכים לכתוב תנאי (if)

  • בצורה פשוטה, כאשר ישנה רק פקודה אחת בתנאי, ניתן לכתוב בשורה אחת:
if ( expression1 )' command
  • בצורה מורכבת, כאשר ישנן יותר מפקודה אחת, או שיש שימוש בelse, התנאי ייכתב:
if ( expression1 ) then
commands
else if ( expression2 ) then
commands
...
else
commands
endif

מבנה Switch

במבנה Switch מושווה ערך כלשהו מול רשימה של ערכים, ומתבצע סט הפקודות שאחרי הערך התואם, אם ישנו. אם לא נמצא ערך מתאים יבוצע סט הפקודות שלאחר ערך ברירת המחדל (default) אם קיים כזה. במבנה זה מתקיים "fallthrough": לאחר מציאת ההתאמה, יבוצעו גם כל הערכים שאחריו, אלא אם תופיע הפקודה breaksw. בC shell ניתן להשוות מחרוזת אל מול תבנית (pattern) וכך להשיג גמישות משמעותית. המבנה הכללי:

switch ( string )
case pattern1:
commands
breaksw
case pattern2:
commands
breaksw
...
default:
commands
breaksw
endsw

לולאת While

בלולאה זו מחושב ביטוי תנאי, והלולאה מתצעת כל עוד ערכו אמת. מבנה הלולאה:

while ( expression1 )
commands
end


לולאת For Each

לולאה זו מקבלת כפרמטר רשימה ומזהה (identifier), ומבצעת סט של פקודות כאשר בכל איטרציה המזהה מתייחס לערך הבא ברשימה, לפי הסדר. לולאה מסוג זה איננה קיימת (בצורה זו) בשפת C. לדוגמה, רצף הפקודות:

set expr = (1, 2, 3, Yossi)
foreach i ( expr )
echo $i
end

ידפיס אל הפלט (בדרך כלל המסך) את הרשימה: 1 2 3 Yossi

קישורים דומים

bash

קישורים חיצוניים


ערך זה הוא קצרמר בנושא מחשבים. אתם מוזמנים לתרום לוויקיפדיה ולהרחיב אותו.