از طریق منوی جستجو مطلب مورد نظر خود در وبلاگ را به سرعت پیدا کنید
چگونه فهرستی را که یک اسکریپت Bash در آن قرار دارد از داخل اسکریپت پیدا کنیم
سرفصلهای مطلب
چگونه فهرستی را که یک اسکریپت Bash در آن قرار دارد از داخل اسکریپت پیدا کنیم
در حین برنامه نویسی bash، ممکن است به مکان اسکریپت برای خودکارسازی وظایف مختلف نیاز داشته باشید. دو نوع مسیر در لینوکس وجود دارد:
- مسیر اقوام: نسبی دایرکتوری کاری فعلی است.
- مسیر مطلق: این مسیر کامل دایرکتوری و فایل ها است.
یکی از رایج ترین راه ها برای تعیین مکان اسکریپت bash استفاده از آن است pwd فرمان این pwd فرمان (چاپ فهرست کار) دایرکتوری فعلی را نشان می دهد.
بنابراین، در بسیاری از شرایط به سادگی با استفاده از pwd دستور کار نمی کند زیرا فقط مسیر دایرکتوری در حال کار را می دهد.
به عنوان مثال، اگر اسکریپت در دانلودها دایرکتوری و در حال اجرا از دسکتاپ سپس خروجی شامل /home/usr/Desktop نه محل فایل اسکریپت bash که هست /home/usr/دانلودها.
این آموزش در مورد دریافت مسیر دایرکتوری که فایل اسکریپت bash در آن قرار دارد از داخل اسکریپت است.
روش دریافت مسیر دایرکتوری که فایل اسکریپت Bash در آن قرار دارد
راه دیگر برای تعیین دایرکتوری اسکریپت Bash استفاده از آن است dirname فرمان این dirname دستور یک مسیر فایل را به عنوان آرگومان می گیرد و بخش دایرکتوری مسیر را برمی گرداند.
برای استفاده dirname دستور برای تعیین دایرکتوری یک اسکریپت، باید دستوری را با مسیر تا آخرین اجزای غیر اسلش به اسکریپت به عنوان آرگومان فراخوانی کنید.
برای جزئیات بیشتر در مورد dirname دستورات زیر را در terminal:
فقط dirname کار نخواهد کرد، ما به دستور دیگری نیاز داریم لینک خواندن. این لینک خواندن دستور چاپ پیوند نمادین را حل کرد. با اجرای دستور زیر اطلاعات بیشتری در مورد این دستور بدست آورید:
اکنون، یک اسکریپت ایجاد کنید:
و تایپ کنید:
اکو «مسیر اسکریپت bash است $(dirname — “$(readlink -f – “$0”)“;)“؛
برای اجرای اسکریپت از:
بیایید دایرکتوری را تغییر دهیم و ببینیم خروجی چیست:
توجه داشته باشید: در یک مورد، اسکریپت بالا کار نخواهد کرد اگر فایل به جای اجرا منبع شود، همانطور که در خروجی زیر مشاهده می شود:
خروجی است /home/sam/Desktop در حالی که فایل اسکریپت در موجود است /خانه/سام فهرست راهنما.
نتیجه
در نتیجه، راههای متعددی برای تعیین دایرکتوری یک اسکریپت bash از درون خود اسکریپت وجود دارد. این dirname همراه با لینک خواندن ابزار می تواند برای تعیین دایرکتوری یک اسکریپت استفاده شود. با این حال، به سادگی با استفاده از pwd دستور کار نمی کند زیرا فقط دایرکتوری در حال کار را ارائه می دهد.
لطفا در صورت وجود مشکل در متن یا مفهوم نبودن توضیحات، از طریق دکمه گزارش نوشتار یا درج نظر روی این مطلب ما را از جزییات مشکل مشاهده شده مطلع کنید تا به آن رسیدگی کنیم
زمان انتشار: 1402-12-29 07:44:04