אנדרואיד

בשבנג

תוכן עניינים:

Anonim

רצף תווים זה ( #! ) נקרא shebang ומשמש להגיד למערכת ההפעלה באיזה מתורגמן להשתמש כדי לנתח את שאר הקובץ.

הוראת מתורגמן לשבנג

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

#!interpreter

  • ההוראה חייבת להיות השורה הראשונה בתסריט. ההנחיה חייבת להתחיל בשיבנג #! חלל לבן אחרי תווי השיבנג הוא אופציונלי. אינטרפרטר הוא הנתיב המלא לקובץ בינארי (לדוגמה: /bin/sh , /bin/bash ). טיעוני הפרשנות הם אופציונליים.

דוגמאות:

  • #!/bin/bash - משתמש bash כדי לנתח את הקובץ. #!/usr/bin/env perl - משתמש בפקודת env כדי למצוא את הנתיב להפעלה perl . #!/usr/bin/python הפעלת הקובץ באמצעות הבינארי של python .

שימוש בשבנג בתסריטים של באש

אם לא צוין שיבנג והמשתמש שמריץ את סקריפט ה- Bash משתמש במעטפת אחרת, הסקריפט ינותח על ידי כל מתורגמן ברירת המחדל שמשמש את אותו מעטפת. לדוגמה, מתורגמן ברירת המחדל עבור bash הוא bash ו- zsh הוא sh . כדי להבטיח שהתסריט שלך יתפרש תמיד עם Bash, עליך לציין את הנתיב ההפעלה באמצעות shebang.

ישנן שתי דרכים להשתמש בהנחיית Shebang ולהגדיר את המתורגמן.

  1. באמצעות הנתיב המוחלט לבינארית bash:

    #!/bin/bash

    שימוש בכלי ה- env :

    #!/usr/bin/env bash

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

כשמשתמשים באפשרות הראשונה להוספת אופציה לאספקת פגז הבש העבירו אותה למתורגמן. לדוגמה, כדי להריץ את הסקריפט במצב באגים, תשתמש ב- #!/bin/bash -x . אם אתה משתמש בשיטת env עליך להשתמש set כדי להכריז על האפשרות. כדי לאפשר את מצב הבאגים הוספת set -x אחרי קו shebang.

דוגמה לסקריפט

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

nano hello_world שלום עולם

#!/bin/bash echo "Hello, World"

כדי להיות מסוגל להריץ את הסקריפט מבלי לציין את המתורגמן משורת הפקודה, עליך להפעיל את הקובץ:

chmod +x hello_world

עכשיו אם אתה יכול להריץ את הסקריפט על ידי הקלדה ./ ואחריו שם הסקריפט:

./hello_world

Hello, World

גובר על השבנג

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

לדוגמה, כדי להריץ סקריפט שציינו #!/bin/sh בשורת Shebang באמצעות מעטפת הבסיס שתקלידו:

bash hello_world

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

סיכום

בשלב זה אמורה להיות לך הבנה טובה של מה הוא Shebang וכיצד להשתמש בו בתסריטים של Bash שלך.

מסוף bash