لیست کاراکترهای خاص برای اکسریپتنویسی در Bash
برای این که یک اسکریپت درست و اصولی باشد، باید اصول، قوانین و سینتکس خاصی در نوشتن آن رعایت شود که در جدول زیر برخی از رایجترین علائم کاربردی در محیط Bash را لیست کردهایم:
کاراکتر | کاربرد |
# | برای کامنتگذاری استفاده میشود به غیر از مواقعی که بهصورت # و یا !# در ابتدای یک اسکریپت استفاده شود. |
در انتهای یک خط استفاده میشود تا ادامهٔ اسکریپت به خط بعد را اعلام کند. | |
; | هر دستوری که پس از این علامت قرار گیرد، بهعنوان یک دستور جدید تلقی خواهد شد. |
$ | هر چیزی که پس از این علامت قرار گیرد (مثلاً sname$) بهعنوان یک متغیر شناخته میشود. |
شکستن خطوط طولانی به چند خط اسکریپت مجزا
گاهیاوقات اسکریپتنویسان مجبور هستند که زنجیرهای از کامندها را یکی پس از دیگری قرار دهند که در چنین مواقعی علامت که تحتعنوان Concatenation Operator شناخته میشود استفاده شده تا دستورات طولانی که در چند خط قرار میگیرند را به یکدیگر وصل کند.
برای مثال، درصورتیکه بخواهید فایلی بهنام var/ftp/pub/userdata/custdata/read/ را از یک سرور فرضی بهنام server1.linux.com به دایرکتوی opt/oradba/master/abc/ روی سروری مثلاً تحتعنوان server3.linux.co.in کپی کنید، بهسادگی و بااستفاده از اپراتور میتوان اینکار را انجام داد:
scp abc@server1.linux.com: /var/ftp/pub/userdata/custdata/read abc@server3.linux.co.in: /opt/oradba/master/abc/
اپراتور این امکان را برایمان فراهم میآورد تا کامندها را در چندین خط مجزا از یکدیگر قرار داده که این مسأله منجر به خوانایی بیشتر اسکریپتها میشود؛ بهعبارت دیگر، در انتهای هر خط منجر به وصل شدن خط فعلی با خط بعدی میشود و درنهایت میتوان تمامی آنها را در قالب یک کامند واحد اجرا کرد.
قرار دادن چندین کامند در یک خط
گاهیاوقات نیاز است تا چندین کامند را در قالب یک خط واحد با یکدیگر گروهبندی کرد. در چنین مواقعی علامت ; برای مجزا سازی این کامندها از یکدیگر و اجرای آنها به همان ترتیبی که گویی در خطوط مجزا از یکدیگر قرار دارند استفاده میشود. برای مثال، کامند زیر حاوی ۳ کامند مجزا از یکدیگر است:
$ make ; make install ; make clean
اگر بخواهیم شرطی قرار دهیم که اگر کامند اول -یا کامندهای قبلی- بدون موفقیت اجرا شدند کامندهای بعدی اجرا نشوند، میتوان از ساختار زیر استفاده کرد:
$ make && make install && make clean
در کامند فوق، اگر کامند اول اصطلاحاً Fail شود، کامند دوم هرگز اجرا نخواهد شد. درعینحال شرایطی را هم میتوان متصور شد که نیاز داریم شرطی بگذاریم که از بین چند کامند حتی اگر یکی از آنها اجرا شد، این تسک موفقیتآمیز تلقی گردد. در چنین مواقعی میبایست از علامت || استفاده کرد:
$ cat file1 || cat file2 || cat file3
در کامند فوق، بهمحض این که اولین کامند با موفقیت انجام شود، سایر کامندها دیگر اجرا نخواهند شد؛ بهطور مثال، اگر cat file1 با موفقیت اجرا نشود، سیستم به سراغ کامند بعدی میرود و درصورتیکه cat file2 موفقیتآمیز باشد، cat file3 دیگر اجرا نخواه شد.