وبلاگ رسانگار
با ما حرفه ای باشید

سرور مجازی NVMe

اگر فایل وجود ندارد، Bash را بررسی کنید

0 5
زمان لازم برای مطالعه: 4 دقیقه


برنامه نویسی Bash یک زبان برنامه نویسی است که می تواند به سرعت در لینوکس و سایر محیط های سیستم عامل برای خودکارسازی وظایف شما استفاده شود. هنگام نوشتن bash اسکریپت ها اغلب ما نیاز به کار داریم روی فایل های موجود در سیستم فایل اما اگر کد ما سعی کند به یک فایل دسترسی پیدا کند و آن فایل وجود نداشته باشد، می توانیم یک خطای غیرمنتظره دریافت کنیم. بنابراین بهترین روش آن برای بررسی وجود فایل ها قبل از تلاش برای ارجاع فایل در a bash اسکریپت ها

مثال 01

ما باید پشتیبانی Bash را در آن اضافه کنیم ‘#!/صندوقچه/bash’. پس از این، a را مقداردهی اولیه کردیم ‘فایل’ متغیر با مسیر خود فایل ‘file.sh’ یعنی ‘/home/linuxint/file.sh’. برای بررسی وجود یا نبودن فایل، از آن استفاده خواهیم کرد ‘اگر پس از آن’ بیانیه شرایط خود را در براکت های مربع در این کد Bash می گیرد. برای بررسی اینکه آیا فایل وجود دارد، باید از آن استفاده کنیم ‘-f’ گزینه به دنبال متغیر دو نقل قول “فایل” با شخصیت دلار “$”. این برای بررسی اینکه آیا مسیر داده شده به فایل حاوی فایلی با نام است یا خیر ‘file.sh’ یا نه.

شرط به اینجا ختم می شود و ‘سپس’ بخشی از بیانیه شروع می شود. اگر فایل وجود داشته باشد، پیغام فایل را نمایش می دهد ‘file.sh’ وجود دارد در مسیر داده شده با استفاده از “پژواک” بیانیه. این “اگر” عبارت در اینجا با سینتکس پایانی به پایان می رسد ‘فی’.

#!/صندوقچه/bash
فایل=/خانه/لینوشینت/file.sh
اگر [ -f $FILE ]; سپس

اکو $FILE وجود دارد!”
فی

اکنون فایل کد Bash خود را ذخیره کرده و فایل را با استفاده از خط فرمان زیر اجرا کنید:

bash file.sh

این خروجی هنگام اجرای دستور است:

linuxhit@u22:~$ bash file.sh
/خانه/لینوشینت/file.sh وجود دارد!

اگر اسکریپت را تغییر دهیم و آن را تغییر دهیم ‘فایل’ به فایلی که وجود ندارد و اسکریپت را دوباره اجرا کنید، هیچ خروجی از اسکریپت دریافت نمی کنیم.

پیشنهاد می‌کنیم بخوانید:  فرمان Bash tr

مثال 02

در این مثال یک عبارت else به دستور if در مثال قبلی اضافه می کنیم. به این ترتیب اگر فایل وجود نداشته باشد، یک پیغام خطای مناسب در خروجی یا صفحه نمایش استاندارد چاپ می شود. این هم کد جدید:

#!/صندوقچه/bash
فایل=/خانه/لینوشینت/file.sh
اگر [ -f $FILE ]; سپس

اکو $FILE وجود دارد!”
دیگر

اکو $FILE وجود ندارد!”
فی

می توانیم اسکریپت ها را به صورت زیر اجرا کنیم:

$ bash file.sh

ما همان خروجی قبلی را دریافت می کنیم:

linuxhit@u22:~$ bash file.sh
/خانه/لینوشینت/file.sh وجود دارد!

اما اکنون اگر نام فایل را هک کنیم تا فایلی وجود نداشته باشد، یک پیغام خطای مناسب دریافت می کنیم:

linuxhit@u22:~$ bash file.sh
/خانه/لینوشینت/nofile.sh وجود ندارد!

مثال 03

بیایید بگوییم، شما می خواهید از آن استفاده کنید ‘نه’ کاراکتر، بنابراین شما ابتدا بررسی می کنید که آیا فایل وجود ندارد. به عنوان مثال، اگر فایل وجود نداشته باشد، ممکن است بخواهید یک پیغام خطا چاپ کنید، اما حتی ممکن است در این زمینه نیازی به دیگری نداشته باشید زیرا فقط برای شما مهم است که فایل وجود نداشته باشد، در غیر این صورت ممکن است اسکریپت بدون خروج از یک به صورت عادی ادامه دهد. خطا

در اینجا نحوی برای استفاده از آن وجود دارد ‘!’ نویسه برای معکوس کردن چک برای بررسی اگر فایل وجود نداشته باشد:

#!/صندوقچه/bash
فایل=/خانه/لینوشینت/nofile.sh
اگر [ ! -f $FILE ]; سپس

اکو $FILE وجود ندارد!”
دیگر

اکو $FILE وجود دارد!”
فی

ابتدا اسکریپت را با نام فایل شکسته اجرا می کنیم:

$ bash file.sh

خروجی زمانی که شرایط خطا را ایجاد می کند در زیر است:

linuxhit@u22:~$ bash file.sh
/home/linuxint/nofile.sh وجود ندارد!

اکنون می‌توانیم نام فایل را به عنوان فایل موجود ثابت کنیم:

#!/صندوقچه/bash
فایل=/خانه/لینوشینت/file.sh
اگر [ ! -f $FILE ]; سپس

اکو $FILE وجود ندارد!”
دیگر

اکو $FILE وجود دارد!”
فی

در اینجا خروجی با فایل موجود است:

linuxhit@u22:~$ bash file.sh
/خانه/لینوشینت/file.sh وجود دارد!
linuxhit@u22:~$

مثال 04

در این مثال ما یک نحو سریع از پوسته را بدون نوشتن اسکریپت نشان می‌دهیم و عملگرهای منطقی را برای موفقیت یا خطاهای چاپ معرفی می‌کنیم. در اینجا اسکریپتی است که می توانید اجرا کنید روی را terminal:

linuxhit@u22:~$ [ -f file.sh ] && اکو “فایل وجود دارد” || اکو “فایل وجود ندارد”
فایل وجود دارد
linuxhit@u22:~$

در کد بالا ما کد را مستقیما می نویسیم روی تعاملی terminal. ما از یک تست شرطی برای بررسی وجود فایل استفاده می کنیم. برای موفقیت 0 برمی گردد. عملگرهای Logical OR و Logical AND برای نشان دادن اینکه کدام پیام باید چاپ شود، موفقیت یا شکست استفاده می شود.

پیشنهاد می‌کنیم بخوانید:  روش تخصیص خروجی یک فرمان لینوکس به یک متغیر – bash

مثال 05

همچنین می‌توانید از رویکرد مشابهی که در این مقاله نشان داده شده است برای بررسی وجود دایرکتوری با استفاده از آن استفاده کنید ‘-d’ گزینه در شرایط خود به جای ‘-f’. فرض کنید، یک دایرکتوری داریم ‘تست’ در پوشه اصلی ما و ما از همان اسکریپت با ‘-d’ گزینه ای برای بررسی آن و نمایش پیام رشته با توجه به خروجی شرط.

در اینجا کد با فایل بررسی دایرکتوری است “dir.sh”:

#!/صندوقچه/bash
فایل=/خانه/لینوشینت/تست
اگر [ -d $FILE ]; سپس

اکو “فهرست راهنما $FILE وجود دارد!”
دیگر

اکو “فهرست راهنما $FILE وجود ندارد!”
فی

برای اجرای کد اجرا کنید:

$ bash dir.sh
linuxhit@u22:~$ bash dir.sh
فهرست راهنما /خانه/لینوشینت/تست وجود دارد!

و کد و خروجی تست منفی:

#!/صندوقچه/bash
فایل=/خانه/لینوشینت/تست
اگر [ ! -d $FILE ]; سپس

اکو “فهرست راهنما $FILE وجود ندارد!”
دیگر

اکو “فهرست راهنما $FILE وجود دارد!”
فی

linuxhit@u22:~$ bash dir.sh
فهرست راهنما /خانه/لینوشینت/تست وجود ندارد!

نتیجه

این همه در مورد استفاده از bash اسکریپت هایی برای بررسی وجود فایل ها و دایرکتوری ها. همچنین از کد مستقیم در Bash استفاده کرده ایم console استفاده از عملیات تست و عملگرهای منطقی

برای نگارش بخشهایی از این متن ممکن است از ترجمه ماشینی یا هوش مصنوعی GPT استفاده شده باشد
لطفا در صورت وجود مشکل در متن یا مفهوم نبودن توضیحات، از طریق دکمه گزارش نوشتار یا درج نظر روی این مطلب ما را از جزییات مشکل مشاهده شده مطلع کنید تا به آن رسیدگی کنیم

زمان انتشار: 1402-12-30 01:09:04

امتیاز شما به این مطلب
دیدگاه شما در خصوص مطلب چیست ؟

آدرس ایمیل شما منتشر نخواهد شد.

لطفا دیدگاه خود را با احترام به دیدگاه های دیگران و با توجه به محتوای مطلب درج کنید