אין שום סיבה להמציא כאן את הגלגל מחדש חוץ ממטרה לימודית. אני עדיין ממליץ לכולם על oh-my-zsh המצוין.
הקוד זמין כאן: https://github.com/barakbl/psh
יש עוד המון עבודה (חלק מתועד ב README).
בכמה מילים איך זה עובד? אז ה shell תמיד כולל פרומט שמצפה להקלדת פקודה שאותה הוא יריץ.
נקודת ההתחלה ברמה הכי בסיסית היא לולאה אינסופית (while True במקרה של פייתון) שבתחילתה יש הצגה של ה prompt וקליטה של התווים שהמשתמש מזין. לאחר הקשה על אנטר ה shell מנסה להריץ את הפקודה. ראשית הוא בודק אם זו פקודה של ה shell עצמו ובמקרה הזה היא ממומשת בקוד של ה shell כלומר במקרה שלנו כפונקציה של פייתון, אחרת ה shell שולח אותה להרצה כפקודה של מערכת ההפעלה.
בגלל שאנחנו בלולאה אינסופית בסוף כל הרצה כזו מוצג שוב הפרומפט להקלדת הפקודה הבאה.
ה shell צריך לממש כתיבה/הצגה של משתני הסביבה (במקרה שלנו הפונקציה/פקודה env), לתמוך ביציאה (הפקודה exit), בפקודה של שינוי תקיה (cd) ורצוי גם עם תמיכה ב - כפרמטר שאומר לחזור לתקיה הקודמת.
אין תגובות:
הוסף רשומת תגובה