תורת בש

/ bin / bash

0. מדד

  1. דברים שקורים לרוב האנשים
  2. מבנה תסריט
  3. הדפס על המסך
  4. קרא את קלט המשתמש
  5. חישובים בבאש
  6. תנאים
  7. לולאות
  8. פונקציות
  9. גטופס

1. דברים שקורים לרוב האנשים

/ bin / bash או / bin / sh

אחד הדברים הראשונים שהמכונה עושה בעת ביצוע התסריט שלנו הוא לבדוק באיזה מעטפת היא צריכה לעשות את זה. ברוב מערכות הלינוקס הנוכחיות / Bin / sh הוא קישור ל / bin / bash, אך זה לא תמיד המקרה, למשל בהפצות המשתמשות busybox הם מביאים Sh ובדרך כלל הם גם מביאים לְהַכּוֹת, אבל אם אתה משתמש / Bin / sh, זה לא יפעל עם בש. לכן אני ממליץ להשתמש תמיד / bin / bash.

יוניקוד לעומת ASCII

האם תהית אי פעם מדוע אינך יכול להשתמש בסימני "¿" או "ñ"? או להשתמש במבטאים? זה יכול להיות די מעצבן בסקריפטים אינטראקטיביים. הסיבה לכך היא שקידוד ברירת המחדל של Bash הוא ASCII, או מה זהה, ערכת התווים האנגלית. כדי לשנות את זה, אנחנו רק צריכים להגיד לתסריט שלנו שאנחנו רוצים להשתמש ב- Unicode. לשם כך עליך להוסיף שורה מיד לאחר מתורגמן הפקודה:

# - * - קידוד: UTF-8 - * -

היזהר, חשוב ששורה זו תהיה בתחילת התסריט.

הפוך את התסריט להפעלה

זה מצחיק כמה אנשים מנהלים את התסריטים עם «$ bashscript.sh" במקום "$ ./script.sh'הרי בשביל זה הגדרנו מעטפת.

כדי להוסיף הרשאות ביצוע, עליך לבצע:

sudo + x script.sh
אם הסקריפט שלנו ניתן להפעלה, אנו יכולים להוסיף אותו ל- PATH שלנו ולהפוך אותו להפעלה מכל מקום / תיקיה במחשב שלנו. לשם כך עלינו להוסיף ל- .bashrc של המשתמש שלנו או ל- / etc / bashrc את השורה
BIN = "תיקיה שבה יש לנו את התסריטים" PATH = "$ BIN $ PATH"
זהו כלל Bash לכתוב שמות משתנים באותיות רישיות. אנשים רבים אינם מקיימים את הכלל הזה, אך עבור תסריטים ארוכים הוא מוערך משום שהם הופכים אותם לקריאים הרבה יותר

2. מבנה תסריט

  1. ראש מיטה
  2. הגדרת משתנים גלובליים
  3. עזרה
  4. פונקציות
  5. גוף עיקרי

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

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

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

פונקצית עזרה () {הד "" "טקסט העזרה המעוצב שלנו." "" צא אם [[-z $ 1 || $ 1 == "-h" || $ 1 == "- עזרה"]]; ואז עזרו ל- fi

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

התנאי מציין עזרה בתצוגה על המסך ויציאה אם ​​הסקריפט מופעל ללא פרמטרים או אם מוגדר -h / –help. אם אתה מסתכל על זה, זו ההתנהגות הסטנדרטית של רוב תוכניות הלינוקס.

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

3. הדפס על המסך

ישנן 2 פקודות עיקריות להדפסה למסך ב- bash: «הד»Wonderfulהדפס«. שניהם מהירים באותה מידה ושניהם חלק מבאס. ההבדל העיקרי למתחילים הוא שהד מוסיף קו חדש בסוף, ואילו «הדפס"לא.

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

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

לדיון נרחב יותר תוכלו לבקר שאלה זו מ- Unix & Linux ב- Stack Exchange.

4. קרא את קלט המשתמש

כל מה שאנחנו כותבים אחרי שם התסריט שלנו ולפני שנלחץ על מקש ENTER נשמר אוטומטית במשתנים מיוחדים. משתנים אלה הם מהסוג $ X כאשר X הוא מספר.

«$0»מציין את שם התסריט שלנו ומתוך«$1»עד אינסוף כל מה שכתבנו מאוחר יותר משתנה. לדוגמה:

חתול << EOF >> test.sh #! / bin / bash # - * - קידוד: UTF-8 - * - printf "\ $ 0 = $ 0 \ n" printf "\ $ 1 = $ 1 \ n" printf "\ $ 2 = $ 2 \ n" EOF chmod + x script.sh ./script.sh my file.txt

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

$ 0 = ./script.sh $ 1 = $ 2 = file.txt שלי

באמצעות ציטוטים יכולנו להעביר את "my file.txt" ל "$ 1".

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

printf "איך קוראים לך? \ n" קרא את NAME printf "שלום, $ NAME. \ n"
היזהר בהקצאת משתנים. "$ VAR = content" יפיק שגיאה, לא ניתן להשאיר רווחים בין סימן השווה, שם המשתנה והתוכן. השימוש הנכון הוא "VAR = content"

5. חישובים בבש

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

בדרך כלל נרצה להקצות את התוצאה של expr למשתנה. אנו יכולים לעשות זאת בשתי דרכים:

VAR2 = `expr $ VAR1 / 10` VAR2 = $ (expr $ VAR1 / 100)

אתה יכול גם לדלג על «ביטוי»שימוש בסוגריים כפולים:

VAR2 = $ (($ VAR1 / 100))
להסבר נוסף על «ביטוי»או אלטרנטיבה המשתמשת במספרים שלמים, אתה יכול להסתכל עליה ערך KZKG ^ גאארה זה.

6 תנאים

זה כבר נכתב בצורה נרחבת מאוד על «if«Wonderfulאחר«Wonderfulאליף»ותנאים. אתה יכול לקרוא על כך ב:

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

  • «&&»עבור ו
  • «||»עבור או

להשתמש "&&»Wonderful||»עם סוגריים מרובעים פשוטים, יש להפריד בין כל חלק בסוגריים מרובעים נפרדים. הדוגמה המשמשת עבור החלק של התסריט שנראה אם ​​צריך להיעזר בעזרה תהיה:

אם [-z "$ 1"] || ["$ 1" == "-h"] || ["$ 1" == "- עזרה"]]; ואז עזרו ל- fi

זה גם חוסך מאיתנו לכתוב שמות משתנים במרכאות כדי למנוע שגיאות. לדוגמה:

אם [$ 1 = 1]; ואז printf "הפרמטר שווה ל- 1."; fi אם ["$ 1" = 1]; ואז printf "הפרמטר שווה ל- 1."; fi אם [[$ 1 = 1]]; ואז printf "הפרמטר שווה ל- 1."; fi

אם script.sh מופעל ללא כל פרמטרים, המקרה הראשון יתן שגיאה:

bash: [: =: צפוי מפעיל unary
ב- Bash "=" ו- "==" שניהם מפורשים באותו אופן. זה לא קורה בשפות תכנות אחרות שבהן "=" משמש להקצאת משתנים בלבד.

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

אם נוסיף «אחר«יהיו לנו גם שני מקרים, אך שני המקרים הללו שונים מהקודמים. מכיוון שעכשיו יהיו שני גושי קוד מותנה, A ו- B, וגוש C, שהוא שאר התוכנית. A או B יבוצעו, ו- C. במקרה הקודם היו A ו- C או רק C.

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

VAR1 = $ 1 אם [[$ VAR1 = 1]]; ואז printf "1 \ n" elif [[$ VAR1 = 2]]; ואז printf "2 \ n" elif [[$ VAR1 = 3]]; ואז printf "3 \ n" אחר printf "none \ n" fi

במקרה של האחרון «אליף»נקרא תנאים רבים. במקרה זה תהליך זה מתייעל:

VAR1 = $ 1 מקרה $ VAR ב- 1) printf "1 \ n" ;; 2) printf "2 \ n" ;; 3 | 4) printf "3 או 4, זה תלוי \ n" ;; *) printf "none \ n" ;; ש- C

משתנה יקרא, במקרה זה VAR1, ונראה אם ​​הוא שווה ערך לכל אחד מהמקרים, אם לא, מקרה ברירת המחדל "*" יבוצע. נקודה-פסיק כפול שווה ערך ל- «לשבור", הם אומרים"מקרה»זה צריך להסתיים.

«מקרה»יכול לשמש גם כרצף של«if«, לשם כך עליך להשתמש ב« ;; & »(המשך) במקום« ;; » (תפסיק).

7. לולאות

מעט מאוד לולאות ידועות בשפת תכנות כלשהי. בבש הם «בזמן«Wonderfulעד»Wonderfulל«. זה כבר נכתב בבלוג על אלה:

ישנם שני סוגים של לולאות «ל«, אלה מהסוג«$ עבור VAR ב- LOQUESEA»ומה הם מסוג C«$ עבור ((I = 0; I <= 10; I ++))«. הסוג השני של לולאות «ל»מאוד שימושיים, יש לו 3 חלקים בתחילת הלולאה:

  • הצהרה והתחלת משתנים (במקרה זה משתנה עזר "I = 0").
  • תנאי ביצוע (עד שאני קטן או שווה ל 10).
  • הגדלת משתנה העזר

לדעתי זו הלופ הכי חזק מכולם. דוגמה המדפיסה את כל המספרים בין 0 ל -10, כולל:

#! / bin / bash עבור ((I = 0; I <= 10; I ++)); האם printf "$ I \ n" נעשה

8. פונקציות

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

אל תעשה דבר כמו:

#! / bin / bash VAR = 1 printc "$ VAR \ n" פונקציה שלום () {VAR = 2 printf "$ VAR \ n"} שלום printf "$ VAR \ n"

זה מודפס למסך 1, 2 ו -2.

כדי להכריז על משתנים מקומיים, הוסף «מקומי»בעת ההצהרה:

#! / bin / bash VAR = 1 printf "$ VAR1 \ n" פונקציה foo () {local VAR1 = 2 printf "$ VAR1 \ n"} printf "$ VAR1 \ n" foo printf "$ VAR1 \ n"

זה מודפס 1, 1, 2, 1 על המסך.

איך מעבירים פרמטרים לפונקציה?

#! / bin / bash # - * - קידוד: UTF-8 - * - פונקציה שלום () {printf "שלום $ 1 \ n"}

printf "איך קוראים לך? \ n"
קרא VAR1
שלום $ VAR1

כיצד מוחזרים פרמטרים?

#! / bin / bash # - * - קידוד: UTF-8 - * - פונקציה שלום () {printf "שלום הוליטה"} printf "איך קוראים לך? \ n" קרא VAR1 VAR1 = $ (שלום) # הנה זה printf "$ VAR1 $ VAR2 \ n"

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

Podéis encontrar más cosas de funciones en [url=https://blog.desdelinux.net/programando-en-bash-parte-3/]este artículo de Usemoslinux[/url].

9. גטופס

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

#! / bin / bash # - * - קידוד: UTF-8 - * - VARC = 0 פונקציה עזרה () {printf "הודעת עזרה \ n" יציאה} אם [[-z $ 1]]; ואז עזור ל- fi בזמן getopts: ha: b: c OPT; לעשות מקרה $ OPT ב- h) עזרה ;; :) עזרה ;; א) VARA = $ OPTARG ;; ב) VARB = $ OPTARG ;; ג) VARC = 1 ;; \?) עזרה ;; esac done # בלוק ראשי של התסריט ש- # עושה דברים עם VARA, VARB ו- VARC

«גטופץ»קורא את האפשרויות אחת אחת, כך שיש צורך בלולאה.

ישנם שני סוגים של אפשרויות שניתן להעביר באמצעות «קמצנים":

  • פרמטרים הנקראים דגלים, במקרה זה -c או -h. הם מוגדרים עם האות בה אנו רוצים להשתמש. הם כמו משתנים בוליאניים, «נָכוֹן»(Are) או«שקר"(הם לא כאן).
  • פרמטרים עם ויכוחים קשורים, -כל דבר, -ב כל דבר. הם מצוינים באות הרצויה עם נקודתיים למטה. הטיעון נשמר ב- OPTARG (שם זה אינו ניתן לשינוי).
הנקודות הכפולות הראשוניות אינן מראות שגיאות.

מה התסריט הזה עושה?

מציג את הודעת העזרה כאשר לא עוברת אפשרות, כאשר הפרמטר "-h" מועבר, כאשר פרמטר לא חוקי מועבר (למשל "-x", זה נעשה על ידי "\?") או כאשר א פרמטר חוקי ללא ארגומנט (":"). בשאר המקרים זה שומר את הנוכחות של "-c" כ- 1 ב- VARC, והערכים שעברו עם "-a" ו- "-b" ב- VARA ו- VARB.


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

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

*

*

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

  1.   אלב דיג'ו

    אוּמָנוּתִי. אני לא אומר יותר U_U

  2.   מיגל דיג'ו

    שלום מאמר טוב מאוד.
    היי אתה שם לתת הרשאות sudo + x במקום chmod + x

    1.    הנרי דיג'ו

      $ sudo chmod + x script.sh
      (ליתר דיוק, היי)

      אה, מזל טוב ותודה!

  3.   חומת אש דיג'ו

    פוסט טוב מאוד, האמת שאני מברך אותך, תמשיך כך, ברכות

  4.   גוסטבו דיג'ו

    ואם אתה רוצה שהתסריט יהיה גלוי כשהוא מבוצע, צעד אחר צעד, לראות למשל איך משתנים, תנאים והכל מתנהגים, אתה יכול להשתמש ב:

    תסריט sh -x

    לגבי

  5.   דאג דיג'ו

    חתיכת הדרכה. מעולה ומסביר היטב.
    תודה.

  6.   גבריאל דיג'ו

    פוסט מצוין בנושא 😉

  7.   מריו גילרמו זוואלה סילבה דיג'ו

    מעניין מאוד וחשוב מאוד על המידע ....
    צחוקים !!!

  8.   נוטפרומברוקלין דיג'ו

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

  9.   אדריאן דיג'ו

    טוב מאוד!

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

    עם זאת מצאתי כמה פרטים שלדעתי צריך לתקן.

    ראשית: בסעיף «2. מבנה סקריפט »הפונקציה אינה סגורה, מה שיגרום לבעיות בעת ביצועה בסקריפט.
    הפיתרון יהיה להוסיף לה סוגר סגור רק אחרי הפקודה "יציאה".

    שנית: בסעיף «4. קרא את קלט המשתמש "אתה מאשר כי הפרמטרים שהמשתמש יכול להזין עוברים מ- $ 0 עד אינסוף, אולם," bash "יפרשו רק בין $ 0 ל- $ 9, מכיוון ש- $ 10 יהיה שווה ל- $ 1 + 0.
    כדי לפתור בעיה זו, תוכל להשתמש בפקודה "shift" כדי לתפוס את המשתנים הבאים. או ציין את המשתנה בסוגריים "$ {10}", כך ש- bash יקח את הערכים יחד, ולא כ- $ 1 + 0.

    ללא התייחסות נוספת, ברכות!

    1.    נוטפרומברוקלין דיג'ו

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

  10.   צ'אניו דיג'ו

    תודה רבה על המאמר! כמה דברים שאתה מציין עדיין חסרו הבהרה. למשל, גטופס.
    בחלק של יציאות המסך היית צריך להזכיר את החתול שאתה מאוחר יותר מזכיר ...
    חתול <
    ***************************************
    * טופס זה אקספרסיבי ביותר *
    ***************************************
    EOF

    בדוגמה שלך:
    חתול << EOF >> test.sh
    צריך להזכיר שני דברים ... >> זה 'הוסף' כלומר, אם תחזור על אותה פקודה, יהיה לך את כל הסקריפט בשכפול ... עליך להשתמש רק באחד ...
    חתול << EOF> script.sh
    כן, זה צריך להיקרא גם script.sh
    ואז פנימה
    אם [-z "$ 1"] || ["$ 1" == "-h"] || ["$ 1" == "–עזרה"]]; לאחר מכן
    לעזור
    fi

    אני חושב שצריך לכתוב את זה ...
    אם [[-z "$ 1"] || ["$ 1" == "-h"] || ["$ 1" == "–עזרה"]]; לאחר מכן
    ...

    יש עוד הרבה מה לגלות מבאס.
    האם אתה יכול לתאר אותו כ"בסיס "? 🙂
    לדוגמה, פרמטר 'בודקים' כמו -z כדי לראות אם הם ריקים, או -f כדי לראות אם הוא קיים כקובץ.

    שוב, תודה על המאמץ שלך.
    אלברטו

  11.   clow_eriol דיג'ו

    מדריך סקריפט טוב מאוד!

  12.   Ocz דיג'ו

    -- קידוד: UTF-8 --

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

    לדעתי, כדי לכתוב סקריפטים ב- Bash באמצעות UTF-8, אתה צריך רק לשמור את קובץ הטקסט ככזה (ללא BOM) ולהגדיר כראוי משתני סביבה מסוימים, (LANG ו- LC_ *).
    ואז, ברור, יש צורך שהפקודות שבוצעו מוכנות לקידודים שאינם ASCII. לדוגמא, אם אנחנו רוצים ללכת באותיות רישיות, נראה שזה לא עובד:
    «הד áéíóú | tr az AZ »
    o:
    «הד áéíóú | tr [: תחתון:] [: עליון:] »
    ועדיף להשתמש:
    «הד áéíóú | awk '{טופרית הדפסה ($ 0)}' ».

    1.    נוטפרומברוקלין דיג'ו

      בעניין ה "הַצפָּנָה»הוזכר בבלוג זה בעבר:

      Bash: כיצד להפוך סקריפט להפעלה
      הודעת סקריפט של תוכנית ההתקנה

    2.    בוריקיטו כמוך דיג'ו

      מישהו יתקן אותי, אבל שורת הקידוד הזו (# -- קידוד: UTF-8 --) אין לזה שום קשר עם bash או הקליפה: זו שורת תגובה (מתחילה ב- #) ומשמשת להגיד לעורך שאנחנו משתמשים בכדי לכתוב את התסריט (vim, emacs ...) את קידוד הקובץ.

      למעשה, bash לא רואה שורה כזו, כי זו שורת תגובה.

  13.   JoGe-1987 דיג'ו

    הדרכה מצוינת, מכיוון ש- Sysadmin יודע שכתוב ב- Bash הוא חיוני, הוא שימושי לכל דבר.

    מאוד מאוד טוב!

    ברכות!

  14.   אדוארדו קובומו דיג'ו

    אם זה שימושי לכל אחד, הנה כמה שימושים ודוגמאות ליצירת סקריפטים משלך: https://github.com/reduardo7/hsabx

  15.   ליטו בלאק דיג'ו

    טוב מאוד. דברים חדשים להוסיף לתסריטים שלי. הדבר encodig ו printf לא היה זה.
    תודה!!!

  16.   xxxtonixxx דיג'ו

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