فهرست مطالب
اولین کاری که باید قبل از شروع به نوشتن یک اسکریپت پوسته یا هر نوع اسکریپت یا برنامهای مشابه آن، انجام بدهید، برشمردن احتیاجات و اهداف آن اسکریپت است. سپس ارزیابی آنچه، بهترین ابزار برای انجام آن اهداف است.
BASH ممکن است برای یادگیری و نوشتن در آن آسان باشد، اما همیشه مناسب انجام کار نیست.
در مجموعه ابزارهای اساسی، تعداد بسیاری ابزار موجود است که میتواند به شما کمک کند. اگر شما فقط به AWK نیاز داشته باشید، نباید یک اسکریپت شل ایجاد کنید که آن را فراخوانی کند. فقط یک اسکریپت AWK ایجاد کنید. اگر به بازیابی داده از یک فایل HTMLیا XML به یک روش معتبر نیاز دارید، نیز Bash ابزار اشتباهی برای انجام آن کار است. باید به جای آن XPath/XSLT را به کار ببرید، یا یک زبانی که کتابخانه معتبری برای تجزیه XML یا HTML دارد.
اگر تصمیم گرفتید که اسکریپت پوسته آن ابزاری است که شما میخواهید، اول این سؤالها را از خود بپرسید:
در یک آینده قابل پیشبینی، آیا ممکن است اسکریپت شما در محیطی که Bash به طور پیشفرض در دسترس نیست، مورد احتیاج باشد؟
اگر اینطور است، پس به جای آن sh را در نظر بگیرید. sh یک شل POSIX است و ویژگیهایش در هر پوسته موافق با استاندارد POSIX، در دسترس میباشد. به این واقعیت تکیه کنید که هر سیستم POSIX قادر به اجرای اسکریپت شما خواهد بود. شما باید توازنی بین لزوم قابلیت حمل و عدم استفاده از قابلیتهای ویژه Bash برقرار کنید.
به خاطر داشته باشید که این راهنما شامل sh نمیشود! صفحه bashism پیشنهادهایی دارد، اما کامل نیست.
اگر نه، باید خود را فقط به ویژگیهای Bash 2.x محدود نمایید.
اگر سؤلات فوق انتخاب شما را محدود نمیکند، از تمام ویژگیهای Bash که لازم دارید، استفاده کنید، توجه کنید که کدام نگارش Bash برای اجرای اسکریپت شما لازم است.
استفاده از Bash نگارش 3 یا بالاتر به معنای آنست که میتوانید از شیوههای اسکریپتنویسی کهنه و قدیمی که به دلایل بسیار خوبی با موارد خیلی بهتری جایگزین شدهاند، اجتناب نمایید.
همواره از شبانگ صحیح استفاده کنید. اگر در حال نوشتن اسکریپت هستید، قرار دادن
موقع نوشتن اسکریپتهای پوسته، از دستور [ استفاده نکنید. Bash جایگزین بسیار بهتری دارد:
وقت آنست که `...` نیز به فراموشی سپرده شود. این مورد با ساختار بسط سازگار نیست. به جای آن از
و به واسطه قدرت شگرف، "کاربرد بیشتر نقلقولها!" رشتهها و بسط پارامترهای خود را از تفکیک کلمات محافظت کنید. اگر به طور صحیح نقلقولی نکنید، تفکیک کلمات نوزادان شما را میخورد.
به جای استفاده از sed یا cut برای کار با رشتههای ساده در Bash، استفاده از بسط پارامترها را بیاموزید. اگر میخواهید پسوند نام فایل را حذف کنید، به جای
به جای استفاده از expr برای انجام محاسبات ساده، از حساب داخلی استفاده کنید، مخصوصاً وقتیکه فقط مقدار متغیری افزایش مییابد. اگر اسکریپتی میخوانید که