ווטסאפ - לינוקס, BSD, קוד פתוח ותוכנה חופשית בעברית. Whatsup - Linux, BSD, open source and free software in Hebrew

 
 
  כניסת חברים · רישום · שכחתי סיסמה  
tux the penguin

quick_linkתשתיות פיתוח ל־Bash

published at 05/05/2019 - 11:08 · ‏פורסם mksoft · ‏tags שורת הפקודה · שלח לחברידידותי למדפסת
שורת הפקודה ה־Shell, ובמיוחד Bash, מהווה כלי חשוב בארגז הכלים של משתמשים בכלל ומנהלי מערכות בפרט. היותו כלי מועדף מהווה נושא לדיון (לדעתי, כן במקרים רבים) אך עדיין מדובר בכלי חיוני. עם זאת, באופן אישי לא נתקלתי ביותר מדי אנשים שמשתמשים בספריות צד ג' לתכנות ב־Bash - דבר הפופולרי בשפות אחרות.

להלן שתי תשתיות אשר נועדו להרחיב את יכולות הפיתוח ב־Bash ולשפר את קריאות הקוד:

Bash-lib

מספקת מגוון פונקציות שימושיות המחולקות לקבוצות אותן ניתן לייבא באופן נפרד:

  • arg-utils: אוסף פונקציות לטיפול גמיש בפרמטרים לפונקציה אשר יכולים להגיע משורת הפקודה או מהקלט הסטנדרטי.
  • calendar-utils: פונקציות לעיבוד מידע הקשור בלוח השנה.
  • date-utils: ניהול תאריכים ומרכיביהם (יום, חודשף שנה).
  • hash-utils: מספקת הדרוש לניהול HashMap.
  • help-util: עוזרת בהצגת הודעות עזרת לגבי פרמטרים חסרים.
  • list-utils: אוסף פונקציות לעבודה עם מערכים.
  • option-utils: ניהול ובניית אופציות ופרמטרים.
  • prompt-colors: מגדירה את שמות הצבעים עם ה-escape sequence המתאים, כך שפשוט ניתן להשתמש בשם הצבע כאשר מגדירים את PS1 לדוגמה.
  • real-utils: פונקציות לטיפול במספרים ממשיים.
  • run-utils: אוסף עזרי הרצת פקודות.
  • sh-utils: מאגדת תחתיה מספר ספריות ומוסיפה עליהן עוד פונקציות שימושית.
  • talk-utils: פוקנציות עזר לפלט הודעות ואזהרות ל־STDERR.
  • text-utils: פונקציות עזרת לטיפול במחרוזות (split, uppercase, lowercase, trim ועוד).
  • test-utils: משמשת לכתיבת unit tests, דוגמות אפשר למצוא גם בבדיקות של Bash-lib עצמה.
  • time-utils: טיפול ב־timestamps, כולל קריאה ופלט בתחבירים שונים, הוספה וחיסור ועוד.

Bash Infinity Framework

תשתית מודולרית וקלילה לפיתוח ב־Bash, תוך יישום רעיונות משפות תכנות אחרות. מספקת:

  • טיפול אוטומטי בשגיאות והדפסת stack trace.
  • פרמטרים בעלי שם בפונקציות.
  • העברת מערכים ו-HashMaps בתור פרמטרים לפונקציה.
  • יישום של try-catch.
  • זריקת חריגות מותאמות.
  • מילת מפתח של import (בסגנון require-js).
  • Aliases שימושיים לצבעים ותווי powerline, הופך את הפלט לקריא יותר.
  • logging צבעוני ל-STDERR או דרך פונקציה מותאמת.
  • ספריית unit test.
  • ספריה סטנדרטית לטיפול בטיפוסי מידע.
  • שרשור פעולות ליישום תכנות פונקציונאלי ב־Bash.
  • תכנות מוכוון עצמים.

ראו דוגמה לשימוש ב־human.sh.



הערה: תודה ל־ik5 על הקישור ל־Bash-lib.
 

קישורים רלוונטיים

תשתיות פיתוח ל־Bash | כניסה / יצירת מנוי חדש | 4 תגובות
סף חסימה
  
ההערות הינן מטעם כותביהן. אין צוות האתר לוקח אחריות על תוכנן
Re: תשתיות פיתוח ל־Bash (ניקוד: 0)
ע"י פינגווין אנונימי ב 05/05/2019 - 11:58
מגניב, אבל:

אם הסקריפטים שלכם הגיעו לרמת הסיבוכיות שדורשת כלים כאלו, אולי באש כבר אינה הכלי המתאים?

צפריר

[ השב לזאת ]

Re: תשתיות פיתוח ל־Bash (ניקוד: 1)
ע"י mksoft (mkriheliATgmailcom)
ב 05/05/2019 - 12:07
(מידע על משתמש | שלח הודעה) http://meirkriheli.com
זה מה שהתכוונתי אליו ב" היותו כלי מועדף מהווה נושא לדיון", במוח שלי זה נשמע ברור :-/

[ השב לזאת ]

Re: תשתיות פיתוח ל־Bash(ניקוד: 0)
ע"י פינגווין אנונימי ב 06/05/2019 - 15:29
לא תמיד ניתן להריץ כלים נוספים כדוגמת פיתון.
כבר הייתי במצב שהייתי בסוג של sandbox שלא היתה גישה לדברים כאלו, ועדיין היית צריך כוח שכזה.

ומהצד השני, הרבה פעמים אנחנו מגיעים למצב ש3-7 שורות bash פותרות בעיה, ואנשים מעדיפים לכתוב את זה בפיתון למשל במקום, שזה הצד השני.

[ השב לזאת ]

Re: תשתיות פיתוח ל־Bash(ניקוד: 0)
ע"י פינגווין אנונימי ב 11/05/2019 - 19:25
אני בעד פרל

[ השב לזאת ]