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

سرور مجازی NVMe

چگونه بررسی کنیم که آیا یک مسیر یک دایرکتوری یا چیز دیگری در اسکریپت Bash است

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


ما در حال تلاش برای توسعه یک اسکریپت بسیار ابتدایی اوبونتو هستیم که به ما امکان می دهد اطلاعات را ارائه دهیم، چه نام فایل یا شاید یک پوشه. چگونه می توانم بررسی کنم که پوشه ای در داخل یک اسکریپت پوسته در زیر ماشین های مجازی لینوکس یا یونیکس وجود دارد؟ یا چگونه می توانم ببینم فایلی وجود دارد؟ چگونه یک کاربر تشخیص می دهد که مسیر ذکر شده یک دایرکتوری یا یک فایل است؟ بنابراین، بیایید چند نمونه در اسکریپت Bash برای توضیح بیشتر داشته باشیم روی این مفهوم ابتدا حتما از سیستم خود وارد شوید. ما از اوبونتو 20.04 استفاده می کنیم. پس از ورود به سیستم، خود را باز کنید console برنامه برای انجام نمونه ها

مثال 01:

برای باز شدن پوسته، سعی کنید “Ctrl+Alt+T“. ایجاد یک bash فایل ابتدا با یک مثال ساده از بررسی اینکه آیا مسیر ذکر شده در a شروع می شود bash فایل یک فایل یا دایرکتوری است. برای ایجاد یک bash فایل کد، تایپ کنید “touch” را در terminal ضمن ذکر نام یک فایل با علامت “.sh” افزونه. بنابراین، ما نام فایل را “test.sh“. کلید را بزنید”وارد” به process پرس و جو

$ دست زدن به test.sh

شما به راحتی می توانید تازه ایجاد شده را پیدا کنید bash فایل در فهرست اصلی برای افزودن الف bash کد را به آن، ما باید آن را در یک ویرایشگر باز کنیم. بنابراین، ما از یک داخلی استفاده کرده ایم GNU ویرایشگر اوبونتو 20.04. بنابراین، ما پرس و جوی زیر را در یک پوسته امتحان کرده و آن را در یک ویرایشگر باز کرده ایم.

$ نانو test.sh

چگونه بررسی کنیم که آیا یک مسیر یک دایرکتوری یا چیز دیگری در اسکریپت Bash است

فایل در یک ویرایشگر راه اندازی شده است. اسکریپت زیر را در آن بنویسید. ابتدا، را اضافه کنید bash پسوند در فایل به صورت “#!/bin/bash”. ما یک متغیر جدید “v1” را اعلام کرده ایم و یک “مسیر” یک فایل را به عنوان مقدار آن اختصاص داده ایم. از مسیر مشخص است که به برخی اشاره می کند bash فایل ها. عبارت “if” مقداردهی اولیه شده است. داخل بریس ها []، باید از پرچم “-d” استفاده کنیم که نشان دهنده دایرکتوری در قسمت شرط آن است. بررسی می کند که آیا مقدار متغیر ذکر شده یک دایرکتوری است یا چیز دیگری. اگر شرط برآورده شود، قسمت “then” را اجرا می کند و “$v1 is a directory” را نمایش می دهد. در غیر این صورت، قسمت دیگری از عبارت “if” را اجرا می کند و “$v1 is a file” را در پوسته نمایش می دهد. terminal. “fi” بیان می کند که عبارت “اگر” در اینجا به پایان رسیده است. پس از ذخیره این bash کد، ما به آن باز خواهیم گشت console از طریق “Ctrl+S” و ”Ctrl+X” به طور متوالی.

پیشنهاد می‌کنیم بخوانید:  تفاوت #!/bin/sh و #!/bin/ چیست؟bash?

چگونه بررسی کنیم که آیا یک مسیر یک دایرکتوری یا چیز دیگری در اسکریپت Bash استچگونه بررسی کنیم که آیا یک مسیر یک دایرکتوری یا چیز دیگری در اسکریپت Bash است

اکنون زمان اجرای آن است bash فایل “test.sh”. بنابراین، ما از آن استفاده کرده ایم bash آموزش در ما console با نام فایل برای بررسی خروجی. خروجی این دستورالعمل نشان می دهد که مسیر ذکر شده در فایل، یک فایل را مشخص می کند. از این رو می توان گفت که قسمت «دیگر» باید در زمان او اجرا شده باشد.

$ bash test.sh

چگونه بررسی کنیم که آیا یک مسیر یک دایرکتوری یا چیز دیگری در اسکریپت Bash استچگونه بررسی کنیم که آیا یک مسیر یک دایرکتوری یا چیز دیگری در اسکریپت Bash است

مثال 02:

بیایید این بار نتیجه یک دایرکتوری را ببینیم. این بار، خواهیم دید که پرچم “-d” چگونه کار می کند روی متغیری که حاوی مسیری برای دایرکتوری است. بنابراین، فایل “test.sh” را دوباره در ویرایشگر از طریق کوئری “nano” در پوسته باز کرده ایم.

$ نانو test.sh

پس از باز کردن آن، مقدار متغیر “v1” را به روز کرده و مسیر را به مسیر دایرکتوری تغییر داده ایم. ما فایل “file.sh” را با دایرکتوری “Pictures/” جایگزین کرده ایم. باقیمانده bash اسکریپت در سراسر فایل در یک ویرایشگر یکسان است. شما باید به سادگی و به سرعت به روز شده را ذخیره کنید bash ابتدا با استفاده از «Ctrl+S» و سپس «Ctrl+X» از ویرایشگر خارج شوید.

چگونه بررسی کنیم که آیا یک مسیر یک دایرکتوری یا چیز دیگری در اسکریپت Bash استچگونه بررسی کنیم که آیا یک مسیر یک دایرکتوری یا چیز دیگری در اسکریپت Bash است

بنابراین، اجازه دهید فایل خود را دوباره اجرا کنیم. برای اجرا، از همان پرس و جوی بالا در مورد استفاده شده است console. این بار اجرا نشان می دهد که مسیر ذکر شده در bash اسکریپت یک دایرکتوری در فهرست اصلی اوبونتو 20.04 است.

$ bash test.sh

چگونه بررسی کنیم که آیا یک مسیر یک دایرکتوری یا چیز دیگری در اسکریپت Bash استچگونه بررسی کنیم که آیا یک مسیر یک دایرکتوری یا چیز دیگری در اسکریپت Bash است

مثال 03:

در دو مثال بالا، روش استفاده از پرچم “-d” را مشاهده کردید تا ببینید آیا متغیر مسیر ذکر شده یک دایرکتوری است یا خیر. این بار از پرچم دیگری به نام “-f” در مثال خود استفاده می کنیم و مشخص می کنیم که آیا مسیر ذکر شده یک فایل است یا نه. از سوی دیگر، ما از یک عبارت تودرتوی “if-else” در خود استفاده خواهیم کرد bash کد برای استفاده از پرچم های “-d” و “-f”. ما فایل “test.sh” را در آن باز کرده ایم GNU ویرایشگر از طریق terminal یک بار دیگر از دستور نانو استفاده کنید.

$ نانو test.sh

پس از باز کردن bash سند، ما در زیر نشان داده شده است bash اسکریپت درون آن اضافه شده است bash پسوند و یک متغیر v1 که حاوی یک مسیر فایل به عنوان مقدار آن است، مقداردهی اولیه کرد. بعلاوه، دستور “if-else” تودرتو به درستی برای بررسی اینکه آیا مسیر یک متغیر یک فایل یا یک دایرکتوری است استفاده شده است. بنابراین، در اولین دستور if، شرطی را برای بررسی اینکه آیا مقدار متغیر یک دایرکتوری است از طریق پرچم “-d” ذکر کرده ایم. اگر شرط برآورده شود، “$v is a directory” را چاپ می کند. در غیر این صورت قسمت دیگر یک بیانیه جمع آوری می شود. در قسمت «دیگر»، عبارت «اگر-دیگر» دیگری ذکر شده است. در قسمت “if” این عبارت، از شرط برای بررسی اینکه آیا مسیر متغیر “v” حاوی یک فایل است یا نه از طریق پرچم “-f” استفاده شده است. اگر مسیر حاوی یک فایل باشد، چاپ خواهد شد که “$v یک فایل است”; در غیر این صورت، عبارت echo قسمت “else” در قسمت کامپایل می شود terminal.

پیشنهاد می‌کنیم بخوانید:  چگونه می توانم Bash را در یک جدید اجرا کنم Container از یک تصویر داکر

چگونه بررسی کنیم که آیا یک مسیر یک دایرکتوری یا چیز دیگری در اسکریپت Bash استچگونه بررسی کنیم که آیا یک مسیر یک دایرکتوری یا چیز دیگری در اسکریپت Bash است

پس از ذخیره کد، این زمان برای کامپایل است bash اسکریپت از طریق a bash پرس و جو. بنابراین، ما از “bash” پرس و جو با نام فایل ذکر شده در آن. خروجی همان چیزی است که ما انتظار داشتیم. از آنجایی که مقدار متغیر حاوی مسیری است که مسیر فایل را مشخص می کند، نشان می دهد که “$v یک فایل است”.

$ bash test.sh

چگونه بررسی کنیم که آیا یک مسیر یک دایرکتوری یا چیز دیگری در اسکریپت Bash استچگونه بررسی کنیم که آیا یک مسیر یک دایرکتوری یا چیز دیگری در اسکریپت Bash است

مثال 04:

در مثال بالا، ما از مسیر یک فایل استفاده کرده‌ایم تا ببینیم در هنگام استفاده از پرچم‌های «-d» و «-f» دستور «if-else» تودرتو چگونه واکنش نشان می‌دهد. این بار از مسیر دایرکتوری استفاده خواهیم کرد. یک بار دیگر فایل را باز کنید و مقدار مسیر متغیر را به روز کنید. ما “test.txt” را با “Documents/” جایگزین کرده ایم. اسکریپت باقیمانده همان است.

چگونه بررسی کنیم که آیا یک مسیر یک دایرکتوری یا چیز دیگری در اسکریپت Bash استچگونه بررسی کنیم که آیا یک مسیر یک دایرکتوری یا چیز دیگری در اسکریپت Bash است

پس از کامپایل موفقیت آمیز یک bash اسکریپت، مسیر اعلام شده در مقدار متغیر “v” یک دایرکتوری است، به عنوان مثال، دانلودها.

$ bash test.sh

چگونه بررسی کنیم که آیا یک مسیر یک دایرکتوری یا چیز دیگری در اسکریپت Bash استچگونه بررسی کنیم که آیا یک مسیر یک دایرکتوری یا چیز دیگری در اسکریپت Bash است

مثال 05:

مثال آخر و جایزه برای تمرین اضافی است. فایل جدید “file.sh” را باز کرده و آن را با کد زیر پر کنید. دو متغیر برای نمایش مسیر فایل و دایرکتوری به صورت متوالی اعلام شده است. عبارات “if-else” با پرچم “-d” برای تعیین نوع مسیر، به عنوان مثال، دایرکتوری یا فایل استفاده شده است.

چگونه بررسی کنیم که آیا یک مسیر یک دایرکتوری یا چیز دیگری در اسکریپت Bash استچگونه بررسی کنیم که آیا یک مسیر یک دایرکتوری یا چیز دیگری در اسکریپت Bash است

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

$ bash file.sh

چگونه بررسی کنیم که آیا یک مسیر یک دایرکتوری یا چیز دیگری در اسکریپت Bash استچگونه بررسی کنیم که آیا یک مسیر یک دایرکتوری یا چیز دیگری در اسکریپت Bash است

نتیجه:

در این راهنما، ما دیدیم که چگونه می توان متوجه شد که مسیر ذکر شده یک فایل، یک دایرکتوری یا چیز دیگری است. ما از دستورات “if-else” و “if-else” تودرتو استفاده کرده‌ایم در حالی که از پرچم‌های “-d” و “-f” در مثال‌های خود برای توضیح بهتر استفاده می‌کنیم.

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

زمان انتشار: 1402-12-30 14:50:04

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

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

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