از طریق منوی جستجو مطلب مورد نظر خود در وبلاگ را به سرعت پیدا کنید
اگر –e و –s و سایر اپراتورهای آزمایش فایل را Bash کنید
سرفصلهای مطلب
در فایلهای لینوکس، اپراتورهای آزمایشی برای بررسی ویژگیهای مرتبط با یک فایل مانند: نویسنده فایل، حقوق مدیریت و مالکیت فایل استفاده میشوند و بررسی میکنند که آیا آنها Symlink هستند یا خیر. وقتی با فایلها سروکار داریم، بررسی وجود آنها و اینکه آیا محتوایی دارند یا نه برای این منظور ضروری است. یا اگر یک دستور همراه با عملگرهای تست استفاده شود.
عملگرهای تست فایل در bash نیز همانطور که از نام توضیح میدهد برای آزمایش فایلها استفاده میشوند. با کمک این عملگرها، میتوانیم جنبههای مختلف یک فایل را آزمایش کنیم، مانند اینکه آیا آن فایل فقط قابل نوشتن یا خواندن است. عملگرهای تست فایل زیادی وجود دارد و هر کدام نقش و کاربرد متفاوتی دارند. عملگرهای تست فایل به ما کمک می کنند تا از بروز خطا در حین اسکریپت نویسی در Bash جلوگیری کنیم. برای انجام این کار، از دستور if-else استفاده می کنیم. دستور if-else به عنوان یک ابزار بسیار مفید برای مدیریت خطا در برنامه نویسی Bash عمل می کند.
هدف عملگر “-e” این است که به ما بگوید آیا فایلی در دایرکتوری مشخص شده وجود دارد یا خیر. عملگر “-s” به ما می گوید که اندازه فایل صفر نیست، به این معنی که این عملگر به ما می گوید که آیا فایل موجود در فهرست مشخص شده حاوی داده ای است یا خیر. سایر اپراتورها به کار با فایل ها عادت دارند اما “-e” و “-s” مهم ترین آنها هستند و اغلب استفاده می شوند.
روش استفاده از اپراتورهای تست:
در این تصویر سعی خواهیم کرد از تمام عملگرهای تست برای انجام کارهای مختلف استفاده کنیم روی فایل ها
مثال شماره 1: با استفاده از اپراتور if –e Text
در این مثال، ما سعی خواهیم کرد از عملگر if –e test استفاده کنیم که عمدتاً برای بررسی وجود یا عدم وجود فایل در دایرکتوری استفاده می شود. حالا ابتدا یک فایل جدید ایجاد می کنیم.
هنگامی که دستور بالا را اجرا می کنیم، فایل خالی را باز می کند و اکنون کدی را می نویسیم که در آن شرطی ایجاد می کنیم که فایل “employee.txt” وجود داشته باشد و دستور echo را که حاوی پیام “File exists” است نمایش دهد. در غیر این صورت، پیام “فایل وجود ندارد” را اجرا می کند. عامل آزمایش فایل حاوی محتوای ذکر شده در زیر خواهد بود.
فایل=“employee.txt”
اگر [ -e $file ]
سپس
اکو “فایل وجود دارد”
دیگر
اکو “فایل وجود ندارد”
فی
پس از ذخیره فایل با استفاده از دستور bash، دستور زیر را اجرا می کنیم که فایل testoperator.sh را اجرا می کند.
هنگامی که دستور بالا را اجرا می کنیم، کد فایل testoperator که اجرا می شود را می خواند و فایل موجود در فهرست اصلی را بررسی می کند. در این حالت ما هیچ فایلی در دایرکتوری نداریم، بنابراین خروجی زیر را اجرا کرد.
خروجی:
اکنون ابتدا یک فایل جدید با نام employee.txt ایجاد می کنیم. سپس دوباره دستور را اجرا کنید تا بررسی کنید که آیا فایل را شناسایی می کند یا خیر. همانطور که در زیر نشان داده شده است، این بار فایل در فهرست اصلی وجود دارد.
حالا اجازه دهید دستور بالا را دوباره اجرا کنیم. این بار خروجی زیر را نمایش می دهد که در آن پیغام وجود دارد.
خروجی:
مثال شماره 2: با استفاده از عملگر متن if –d
در این مثال، ما اپراتور آزمایشی دیگری را امتحان خواهیم کرد که عملگر “-d” است که برای بررسی اینکه آیا فایلی که بررسی می کنیم یک دایرکتوری است یا نه استفاده می شود. این بار، یک دایرکتوری جدید ایجاد می کنیم که نام آن را “employee” گذاشته ایم، همانطور که در قطعه زیر مشاهده می شود.
اکنون فایل “testoperator.sh” را تغییر می دهیم که در آن نام فایل “employee.txt” را به “employee” تغییر می دهیم. سپس عملگر “-d” را در دستور if به همراه “$file” که واکشی میشود، ارسال کنید. و با تغییر پیامی که به عنوان خروجی نمایش داده می شود، فایل را ذخیره می کنیم. اکنون فایل “testoperator.sh” حاوی محتوای زیر است.
فایل=“کارمند”
اگر [ -d $file ]
سپس
پژواک”
دیگر
پژواک”کارمند یک دایرکتوری نیست “
فی
پس از تغییر “testoperator.sh”، دستور bash را به همراه نام فایل اجرا خواهیم کرد:
هنگامی که دستور بالا اجرا می شود، خروجی نشان داده شده در زیر را نمایش می دهد که در آن پیامی را چاپ می کند:
خروجی:
مثال شماره 3: استفاده از عملگر متن if –s
در این مثال، ما سعی خواهیم کرد از عملگر “-s” استفاده کنیم که برای بررسی اینکه آیا فایل حاوی محتوایی است یا خیر. برای آن، ما از فایلی که قبلا ایجاد شده است استفاده خواهیم کرد که در مثال 1 با نام “employee.txt” استفاده کردیم. اجازه دهید ابتدا فایل testoperator.sh را تغییر دهیم که در آن گزینه “-s” را به همراه نام فایل به دستور if خود منتقل می کنیم و فایل “employee.txt” را اختصاص می دهیم. همچنین پیامی که به عنوان خروجی نمایش داده می شود را تغییر می دهد.
فایل=“employee.txt”
اگر [ -d $file ]
سپس
پژواک”
دیگر
پژواک” staff.txt خالی نیست“
فی
حال فایل “testoperator.sh” را ذخیره و می بندیم و دستور ذکر شده در زیر را در فایل اجرا می کنیم terminal.
هنگامی که دستور بالا اجرا میشود، عبارت else را اجرا میکند زیرا staff.txt حاوی محتوا است. بنابراین، دستور echo دستور then را نادیده می گیرد.
خروجی:
اکنون، ما محتوا را از “employee.txt” حذف می کنیم و سپس دوباره دستور را اجرا می کنیم. هنگامی که دستور بالا یک بار دیگر اجرا می شود، پیغام سپس دستورات را نمایش می دهد زیرا حاوی محتوایی در آن نیست. مثال زیر خروجی دستوری است که پس از حذف محتوای فایل اجرا کردیم.
خروجی:
مثال شماره 4: با استفاده از عملگر متن if –r
در این مثال، یک عملگر آزمایشی دیگر که “-r” است را پیاده سازی خواهیم کرد. این عملگر برای بررسی اینکه آیا فایل برای کاربر قابل خواندن است یا خیر استفاده می شود. برای این کار، فایل testoperator.txt را با جایگزینی عملگر “-d” با “-r” تغییر می دهیم. همچنین پیام خروجی را تغییر می دهد که در صورت خواندن فایل است. پیغام employee.txt قابل خواندن است و اگر فایل قابل خواندن نباشد عبارت else را نمایش می دهد. اکنون، “testoperator.txt” حاوی محتوای زیر است:
فایل=”employee.txt”
اگر [ -r $file ]
سپس
اکو “employee.txt قابل خواندن است”
دیگر
اکو «ploy.txt قابل خواندن است»
فی
حال دستور زیر را برای اجرای کد نوشته شده در داخل آن اجرا می کنیم.
پس از اجرای دستور بالا، خروجی نمایش داده شده در زیر چاپ می شود روی را terminal.
خروجی:
نتیجه
ما در مورد مهمترین بخش سیستم پرونده، اپراتورهای آزمون بحث کرده ایم. هنگام کار با فایل ها، اپراتورهای آزمایشی ضروری ترین ابزار ارائه شده توسط بسته های لینوکس هستند. پس از معرفی هدف عملگرهای تست با پیاده سازی این عملگرها در مثال های مختلف به توضیح آنها پرداختیم.
لطفا در صورت وجود مشکل در متن یا مفهوم نبودن توضیحات، از طریق دکمه گزارش نوشتار یا درج نظر روی این مطلب ما را از جزییات مشکل مشاهده شده مطلع کنید تا به آن رسیدگی کنیم
زمان انتشار: 1402-12-29 08:17:05