#!/bin/bash # sysinfo_page - HTML اسکریپتی برای تولید یک فایل cat <<- _EOF_ <html> <head> <title> My System Information </title> </head> <body> <h1>My System Information</h1> </body> </html> _EOF_
حال که اسکریپت قابل کارکرد خود را داریم، بیایید آن را بهبود بدهیم. اول از همه، برخی تغییرات ایجاد خواهیم نمود زیرا میخواهیم تنبل باشیم. در اسکریپت فوق، میبینیم که عبارت "My System Information" تکرار میشود. این تایپ کردن بیهوده است (و کار اضافی!) بنابراین آن را به این صورت بهبود میدهیم:
#!/bin/bash # sysinfo_page - HTML اسکریپتی برای تولید یک فایل title="My System Information" cat <<- _EOF_ <html> <head> <title> $title </title> </head> <body> <h1>$title</h1> </body> </html> _EOF_
به طوری که میتوانید مشاهده کنید، یک سطر به ابتدای اسکریپت اضافه کردیم و دو موردِ وجود عبارت "My System Information" را با $title تعویض نمودیم.
آنچه ما انجام دادهایم معرفی ایده بسیار اساسی
هر گاه پوسته کلمهای را که با یک "
برای ایجاد یک متغیر، یک سطر در اسکریپت خود قرار بدهید که شامل نام متغیر و به دنبال آن بلافاصله علامت تساوی ("=") باشد. هیچ فاصلهای مجاز نیست. بعد از علامت تساوی، اطلاعاتی را که مایل به ذخیره هستید تخصیص بدهید.
شما آنها را میسازید. درست است، شما نامها را برای متغیرهایتان انتخاب میکنید. چند قاعده وجود دارد.
افزودن متغیر title به دو طریق کار ما را آسانتر میکند. نخست، مقدار تایپی که باید انجام بدهیم را کاهش میدهد. دوم و به طور مهمتر، پشتیبانی اسکریپت ما را آسانتر میسازد.
همچنانکه شما اسکریپتهای بیشتر و بیشتری مینویسید (یا هر نوع برنامهنویسی دیگری انجام میدهید)، خواهید آموخت که برنامهها اصلاً به ندرت تکمیل میشوند. آنها به وسیله تولید کنندگانشان و سایرین ویرایش میشوند و بهبود مییابند. به هر حال، این همان موردی است که توسعه منبع باز متوجه آن است. بیایید فرض کنیم شما میخواستید در نگارش قبلی اسکریپت، عبارت "My System Information" را به "Linuxbox System Information." تغییر بدهید، شما میبایست در دو محل این را تعویض میکردید. در نگارش جدید با متغیر title فقط در یک محل باید آن را تعویض کنید. چون اسکریپت ما اینقدر کوچک است، شاید این موضوع کم اهمیتی به نظر آید، اما چنانچه اسکریپت بزرگتر و پیچیدهتر بشود، بسیار با اهمیت میگردد.
موقعی که شما نشست پوسته خود را آغاز میکنید، برخی متغیرها از قبل توسط فایل راهاندازی که قبلاً دیدیم، برقرار گردیدهاند. برای دیدن تمام متغیرهایی که در محیط شما هستند، فرمان printenv را به کار ببرید. یک متغیر در محیط شما محتوی نام میزبان برای سیستم شما است. ما به این صورت این متغیر را به اسکریپتمان اضافه میکنیم:
#!/bin/bash # sysinfo_page - HTML اسکریپتی برای تولید یک فایل title="System Information for" cat <<- _EOF_ <html> <head> <title> $title $HOSTNAME </title> </head> <body> <h1>$title $HOSTNAME</h1> </body> </html> _EOF_
اکنون اسکریپت ما همواره شامل نام ماشینی است که روی آن در حال اجرا هستیم. توجه کنید که، مطابق قرارداد، نام متغیرهای محیط با حروف بزرگ هستند.