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

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


מעטפת הפקודה מאפשרת למשתמש לכתוב [[פקודה (מחשב)|פקודות]] ולבצע פעולות פשוטות ב[[מחשב]], כולל [[בקרת זרימה|בקרות זרימה]] ושימוש ב[[משתנה (תכנות)|משתנים]]. הפקודות, כמו בכל שפת סקריפטים, עוברות [[הידור]] בזמן ריצה.<br />
מעטפת הפקודה מאפשרת למשתמש לכתוב [[פקודה (מחשב)|פקודות]] ולבצע פעולות פשוטות ב[[מחשב]], כולל [[בקרת זרימה|בקרות זרימה]] ושימוש ב[[משתנה (תכנות)|משתנים]]. הפקודות, כמו בכל שפת סקריפטים, עוברות [[הידור]] בזמן ריצה.

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


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


שורה 11: שורה 12:


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


השפה תומכת בלולאות while ו-for each, פקודות תנאי, ומבני בקרה switch.
השפה תומכת בלולאות while ו-for each, פקודות תנאי, ומבני בקרה switch.

=== משתנים ===
=== משתנים ===
בשפה ניתן להצהיר על משתנים על ידי כתיבת הפקודה:
בשפה ניתן להצהיר על משתנים על ידי כתיבת הפקודה:
שורה 49: שורה 51:
{| class="wikitable"
{| class="wikitable"
|-
|-
! פלט !! פקודה
! פלט !! פקודה
|-
|-
| 11 10 01 00 || {echo {0,1}{0,1
| 11 10 01 00 || {echo {0,1}{0,1
שורה 57: שורה 59:


== TCSH ==
== TCSH ==
אחת הגרסאות הנפוצות של CSH היא TCSH, או Tenex C Shell. מקור שמה הוא במערכת הפעלה אקדמית בשם Tenex אשר פותחה בשנות השישים של המאה העשרים. היא הייתה השראה לכמה מהשיפורים הקטנים שב-TCSH לעומת C Shell המקורי מ-BSD{{הערה|[http://www.tcsh.org/tcsh.html/THE_T_IN_TCSH.html ה־T שב־TCSH] - מתוך התיעוד של TCSH}}.
אחת הגרסאות הנפוצות של CSH היא TCSH, או Tenex C Shell. מקור שמה הוא במערכת הפעלה אקדמית בשם Tenex אשר פותחה בשנות השישים של המאה העשרים. היא הייתה השראה לכמה מהשיפורים הקטנים שב-TCSH לעומת C Shell המקורי מ-BSD{{הערה|[http://www.tcsh.org/tcsh.html/THE_T_IN_TCSH.html ה־T שב־TCSH], מתוך התיעוד של TCSH}}.

== הערות שוליים ==
{{הערות שוליים}}


== קישורים חיצוניים ==
== קישורים חיצוניים ==
שורה 69: שורה 68:
* [http://www.tcsh.org/Home האתר של TCSH]
* [http://www.tcsh.org/Home האתר של TCSH]


== הערות שוליים ==
{{קצרמר|מחשבים}}
{{הערות שוליים}}


[[קטגוריה:יוניקס]]
[[קטגוריה:יוניקס]]

גרסה מ־17:23, 6 במרץ 2013

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

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

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

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

כיום השימוש C Shell נעשה לרוב דרך מעטפת הפקודה הקרויה tcsh (קיצור של Tenex C Shell), שהיא שיפור של csh הכולל תכונות חדשות נוספות כגון השלמת שמות קבצים, עריכת שורת הפקודה ועוד (אלה נלקחו משפת Tenex, ומכאן התוספת של האות t). ל-tcsh תאימות-לאחור מלאה עם C shell. קיימות מעטפות פקודה חדשות יותר, כגון bash, להן יתרונות רבים על פני C shell, אולם השימוש בC shell עדיין נפוץ.

תחביר ובקרות זרימה

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

השפה תומכת בלולאות while ו-for each, פקודות תנאי, ומבני בקרה switch.

משתנים

בשפה ניתן להצהיר על משתנים על ידי כתיבת הפקודה: set var=x כאשר במקום var ייכתב שם חוקי כלשהו, ובמקום X ניתן לכתוב כל רצף של תווים. מערכת הטיפוסים ב-C shell היא חלשה: כל משתנה הוא מחרוזת, כאשר ניתן להתייחס אליו כאל מספר בהתאם לצורך, ובמגבלות מסוימות. מרגע שהוגדר משתנה הוא מוכר במעטפת עד שמתרחש אחד מהבאים:

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

בניגוד לשפת C, על מנת להתייחס לתוכן של משתנה יש להקדים לשמו את התו $. לדוגמה var$.

השפה תומכת גם ברשימות פשוטות, שהן למעשה מערך של מחרוזות, ומאפשרת לגשת לאיבר ברשימה בצורה דומה לגישה אל איבר במערך. על מנת לבצע השמה של רשימה אל משתנה יש להקיף את הערכים הדרושים בסוגריים. ניתן לגשת למספר איברים ברשימה על ידי כתיבת טווח בתוך סוגריים מרובעים; לדוגמה, אם הגדרנו (set a = (w x y z, אזי

  • $a[1-3] = w x y
  • $a[-2] = w x
  • $a[2-] = x y z

השפה לא תומכת ברשימה מקוננת (כלומר רשימה של רשימות). ניתן להתייחס למשתנה פשוט כאל רשימה באורך 1. בניגוד בולט לשפת C, מספור האיברים ברשימה מתחיל מהמספר 1 ולא 0.
הביטוי list#$ מחזיר את מספר האיברים ברשימה list.

ביטויים אריתמטיים

השפה תומכת בביטויים אריתמטיים פשוטים, ובכל אופרטור אריתמטי שקיים בשפת C: =+ , ++ (לאחר משתנה בלבד), =*, וכו'.

שורה שמכילה ביטוי אריתמטי צריכה להתחיל בתו '@'. לדוגמה, לאחר ביצוע הפקודות

set i = 1
@ i = i + 1

ערכו של המשתנה i יהיה 2.

קבוצות

בביצוע פקודה בה מופיע ביטוי מהצורה {a,b,c} הביטוי יחושב כאילו נכתב כל אחד מהפריטים שבו. לדוגמה:

פלט פקודה
11 10 01 00 {echo {0,1}{0,1
she sells sea shells by the sea shore {echo s{he,e{lls,a},hells} by the s{ea,hore

TCSH

אחת הגרסאות הנפוצות של CSH היא TCSH, או Tenex C Shell. מקור שמה הוא במערכת הפעלה אקדמית בשם Tenex אשר פותחה בשנות השישים של המאה העשרים. היא הייתה השראה לכמה מהשיפורים הקטנים שב-TCSH לעומת C Shell המקורי מ-BSD[1].

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

הערות שוליים

  1. ^ ה־T שב־TCSH, מתוך התיעוד של TCSH