כיצד לבדוק אם קיימים קובץ או ספריה בסקריפט של Bash Shell

בודקים אם קיימים קובץ או ספרייה מסקריפט של Bash

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

תחביר ושימוש

קבצים

כדי לבדוק אם קיים קובץ, השתמש בתחביר הבא:

[-f]

הביטוי [-f] מחזירה 0, כלומר הצלחה אם אכן קיים, ואם הוא לא קיים הוא מחזיר סטטוס שאינו אפס. בדרך כלל, זה משמש כתנאי ב- אם הַצהָרָה.

אם [ -f ] אז fi

כדי לשלול את הערך המוחזר, פשוט להקדים את עם אופרטור שלילה (!).

אם [ ! -f ] ואז fi

במקרה זה, התנאי יקיים אם הקובץ לא קיים, שכן המצב שאינו אפס שהוחזר (שקר) ישלל וייחשב כ-0 (true).

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

מדריכים

תחביר דומה לבדיקת קבצים משמש לבדיקת ספריות.

[ -ד ]

בדומה להצהרה לקבצים, הצהרה זו מחזירה 0, כלומר הצלחה, אם הספרייה קיים, ומצב שאינו אפס, כלומר מצב כשל מוחזר אם הוא לא קיים. זה נפוץ גם ב- an אם תנאי הצהרה.

אם [ -d ] אז fi

כדי לשלול את הסטטוס שהוחזר, הקדי את עם אופרטור שלילה (!).

אם [ ! -ד ] ואז פי

התנאי יתקיים (סטטוס 0) במקרה זה אם הספרייה לא קיימת, ויכשל (סטטוס לא אפס) אם הספרייה קיימת.

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

💡 תחביר הסוגר ( [...] ) המשמשת כאן היא למעשה פקודת לינוקס שנקראת מִבְחָן. האפשרויות ו הם התכונות של פקודה זו. למידע נוסף, עיין בדף המדריך לבדיקה ( מבחן גבר ).

בדוק מ-Bash Script

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

ניתן להשתמש באותם תחבירים מתוך סקריפט Bash.

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

לתת הרשאות ביצוע עבור הקובץ הזה, הפעל:

chmod +x test.sh

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

./test.sh