תכנות בבאש - חלק 1

אמנם אנו משתמשים בו בדרך כלל לפעולות ניהול או ניהול קבצים, אך נוחות de לינוקס מרחיב את הפונקציונליות שלו הרבה מעבר למטרה זו ומאפשר לנו לתכנת סקריפטים מדריך זה לא נועד להוות התייחסות מלאה לתכנות ה- Bash, אלא מבוא לפקודות ולמבנים הבסיסיים, שיאפשרו לנו להרחיב את כוחה של מערכת ה- GNU / Linux שלנו.

מהו "סקריפט"?

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

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

מבנה תסריט

כדי להתחיל עלינו להיות בעל עורך טקסט ורצון לתכנת. את הקבצים שאנחנו שומרים עם סיומת .sh ניתן לבצע (או לפרש) על ידי המסוף, כל עוד השורה הראשונה היא הבאה:

#! / bin / bash

זה אומר למערכת להשתמש במסוף להפעלת הקובץ. בנוסף, התו # מאפשר לך לכתוב הערות. כדי ליצור את הדוגמה הפשוטה ביותר אנו מוסיפים שורה נוספת, שנראית בתמונה הבאה:

פקודת ההד מציגה הודעה על המסך, במקרה זה "שלום עולם אופייני!" אם נשמור אותו ונבצע אותו באמצעות הקונסולה נראה את התוצאה.

פקודות בסיסיות

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

כינויים: מאפשר להחליף מחרוזת מילים במילה קצרה יותר, המאפשרת צמצום קוד.

# צור כינוי שנקרא לפי עם הכתובת של התיקיה #Downloads כינוי לכל = '/ בית / משתמש / הורדות' # בכל פעם שאנחנו רוצים להשתמש בה אנחנו פשוט צריכים להתקשר למילה החדשה

break: מאפשר לך לצאת מיידית מ- for, while, עד או בחר לולאה (נלמד לולאות בפירוט בהמשך)

# צור לולאה שתקצה את המספרים מ -1 עד 5 # לכל "סיבוב לולאה" למונה ב 1 2 3 4 5 עשה # אנו מדפיסים את הערך הנוכחי של המשתנה # counter, אשר מנותח על ידי התו $ echo " $ counter "# אם ערך המונה שווה ל- 3 אם [$ counter –eq 3] אז # ההפסקה יוצאת מהלולאה להפסקה שהסתיימה

המשך - דומה לשבירה, אלא שהוא מתעלם מהלולאה הנוכחית ועובר למצב הבא.

# צור לולאה שתקצה את המספרים מ -1 עד 5 # לכל "סיבוב לולאה" למונה ב 1 2 3 4 5 בצע # אם ערך המונה שווה ל- 3 אם [$ counter –eq 3] אז # המשך מונע מניתוח שאר מחזור # הנוכחי על ידי קפיצה לסיבוב הבא, כלומר, ערך # 3 לא יודפס. המשך פי הד "מונה $" נעשה

להכריז: מצהיר על משתנים ומקצה להם ערכים, בדיוק כמו סטים (הם עובדים באותה צורה). אנו יכולים לשלב את זה עם כמה אפשרויות: -i מצהיר על מספרים שלמים; -r עבור משתנים לקריאה בלבד, שלא ניתן לשנות את ערכם; –A למערכים או "מערכים"; -f לפונקציות; -x למשתנים שניתן "לייצא" מחוץ לסביבת התסריט עצמו.

להכריז –i מספר = 12 להכריז –x pi = 3.14

עזרה: מראה עזרה לפקודה ספציפית.

משרות: מציג את התהליכים הפועלים.

# With –c אנו מציגים את שם הפקודות, עם –p # pid (מזהה התהליך) של כל תהליך. עבודות -מחיר

let: להעריך ביטוי חשבוני

תן a = 11 תן a = a + 5 # לבסוף אנו מדפיסים את הערך של a שהוא 16 הד "11 + 5 = $ a"

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

local v1 = "זהו משתנה מקומי"

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

printf: מאפשר לך להדפיס נתונים ולעצב אותם. יש לו אפשרויות רבות, אז נזכיר כמה.

#% f מודפס כמספר צף, n עבור שורה חדשה # הדפסה "% fn" 5 5.000000 # & d מאפשרת להעביר מספרים עשרוניים כארגומנטים printf "יש% d הזמנות המוערכות ב-% d דולרים. n" 20 500 יש 20 הזמנות בשווי 500 דולרים.

קרא: קרא שורה מקלט רגיל (מודול המשמש לטעינת נתונים דרך המקלדת למשל). אנו יכולים להעביר אפשרויות כמו: t לתת זמן הגבלת קריאה; -a כך שכל מילה מוקצית למיקום במערך aname; -d להשתמש במפריד שייכתב בסוף השורה; בין היתר.

הד "הזן את שמך ולחץ על ENTER" # קרא את שם המשתנה קרא את שם ההד "שמך $ name"

סוג: מתאר פקודה והתנהגותה. יכול להיות שימושי לגלות את הגדרות הנתונים עבור כל פקודה.

סוג –a '[' #type אומר לנו ש [היא פקודה מובנית של מעטפת [היא מעטפת מובנית של # -a מאפשרת למצוא את הספריות שמכילות # הפעלה עם השם שהוזן. [is / usr / bin / [

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

# אנו רואים את המגבלות הנוכחיות שלנו ulimit –a # -f מאפשרת להגביל משתמשים לא יכולים ליצור קבצים הגדולים מ- 512000 Kb (500 #Mb) ulimit –f 512000 # -v מגבילה את הזיכרון הווירטואלי של התהליך. ulimit –v 512000

המתן: המתן לתהליך או עבודה מסוימת שתמשיך.

# התסריט ממתין לתהליך pid # 2585

המתן 2585

פקודות שימושיות אחרות שנוכל להוסיף לתסריטים מיוצגות על ידי סמלים.

!!: הפעל את הפקודה האחרונה שוב

! wer: מבצע את הפקודה האחרונה שהחלה בביטוי "wer".

'==', '! =', '>', '<', '> =' ו- '<=': אופרטורים יחסיים.

|: מפעיל ה- OR נהג בדרך כלל להצטרף לשני ביטויים רגילים.

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

תודה לך חואן קרלוס אורטיז!

השאירו את התגובה שלכם

כתובת הדוא"ל שלך לא תפורסם. שדות חובה מסומנים *

*

*

  1. אחראי לנתונים: מיגל אנחל גטון
  2. מטרת הנתונים: בקרת ספאם, ניהול תגובות.
  3. לגיטימציה: הסכמתך
  4. מסירת הנתונים: הנתונים לא יועברו לצדדים שלישיים אלא בהתחייבות חוקית.
  5. אחסון נתונים: מסד נתונים המתארח על ידי Occentus Networks (EU)
  6. זכויות: בכל עת תוכל להגביל, לשחזר ולמחוק את המידע שלך.

  1.   בינוני קשה דיג'ו

    גדול! בכל מקרה 2 הערות: התג של אובונטו הוא חצי יותר מדי, מכיוון שהוא מכליל משהו שהוא כללי. ואם הדרכות אלה ימשיכו להתקדם, יהיה טוב אם הן מקושרות זו לזו ....
    מלבד זאת, המהלך הזה מעניין!

  2.   בואו נשתמש בלינוקס דיג'ו

    תרומה טובה! גדול!

  3.   ג'ובאני אסקובר סוסה דיג'ו

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

    מאמר טוב

  4.   בואו נשתמש בלינוקס דיג'ו

    תאריך טוב! תודה!

  5.   פטריסיו דוראנטס ג'מארנה דיג'ו

    : @ הפונקציה "התחבר כ-" מחקה את התגובה הקודמת שלי, אז אני אסכם אותה עוד:
    עבודות -מחיר
    bash: jobs: -c: אפשרות לא חוקית
    משרות: שימוש: משרות [-lnprs] [jobspec ...] או משרות -x פקודה [args]

    -eq -gt -lt לא מקבלים משתני נקודה עשרונית, בין פורום לפורום גיליתי ש- bc הוא בעל ברית טוב:
    אם [`הד 9.999> 10 | bc` -eq 1]; לאחר מכן
    הד "9.999 גדול מ -10, וודא שהמעבד שלך עדיין עובד"
    אחר
    הד «9.999 אינו גדול מ -10, הכל עובד כרגיל
    fi

  6.   לא מברוקלין דיג'ו

    פוסט זה מסכם היטב את כל כללי התסריט הבאסי:
    http://www.aboutlinux.info/2005/10/10-seconds-guide-to-bash-shell.html

    באתר זה תוכלו למצוא שאלות ותשובות רבות על המוזרויות הבאסיות:
    http://unix.stackexchange.com/questions/tagged/bash

    הנה כמה סקריפטים ממש מגניבים, והיי, אתה יכול ללמוד אותם על ידי קריאת תסריטים של אנשים אחרים:
    http://snipplr.com/search.php?q=bash&btnsearch=go

  7.   לא מברוקלין דיג'ו

    אתה צודק במה שאתה אומר, למעט באש. בכל מערכת שראיתי יש bas / bin / bash.

    אבל עבור פיתון, פרל, אודם וכו ', זה בסדר להשתמש בזה. עידו

  8.   גיל דיג'ו

    במקרה, בקולג 'אנו משתמשים ב- scripting bash כך שהנתונים הם 10, טובים מאוד!

  9.   אלכס וי דיג'ו

    גרסת pdf להורדה תהיה טובה !! 😀

  10.   מרקו אנטוניו דה פואנטס דיג'ו

    אתר טוב מאוד. סוף סוף מצאתי משהו שימושי. תודה.