امیرحسین کریم پور
مدیر ارشد توسینسو و متخصص سرویس های مایکروسافت

آموزش دستور test در لینوکس و کاربردهایش

امروز در این نکته قصد دارم شما رو با دستور نسبتا ساده ای آشنا کنم که در نوع خودش میتونه مفید واقع بشه. دستوری که میخوام معرفی کنم اسمش test هستش. این دستور در حالت کلی نوع فایل رو مشخص میکنه و مقادیر اونها رو با هم مقایسه میکنه. از کاربرد های این دستور میشه به مشخص کردن صاحب یک فایل ، اجرایی بودن فایل ، موجود بودن فایل و خیلی از موارد دیگه اشاره کرد. بر خلاف دستور های دیگه در لینوکس دستور test هیچ خروجی رو تو صفحه نمایش به ما نشون نمیده و تنها مقدار صفر و یا مقادیر غیر صفر رو داخل یک متغیر که ؟ هستش نگهداری میکنه.که با دستور ?$ echo بررسی میکنیم که مطابق با دستوری که وارد کردیم خروجی مون true هست یا false مقدار true برابر عدد 0 و مقادیر false برابر اعداد غیر صفر هستن. جلوتر بیشتر با مثال های عملی که میزنیم با سوئیچ های مختلف این دستور آشنا میشید. الگوی کلی استفاده از دستور test به شکل زیر هست :

دوره های شبکه، برنامه نویسی، مجازی سازی، امنیت، نفوذ و ... با برترین های ایران
سرفصل های این مطلب
  1. سوئیچ e-
  2. سوئیچ s-
  3. سوئیچ d-
  4. سوئیچ gt-
:~# test EXPRESSION

همینجا اینو متذکر بشم که خروجی ای که ما از دستور test دریافت میکنیم کاملا بستگی به سوئیچی داره که ما از اون استفاده میکنیم.

سوئیچ e-

خب ما یه فایل متنی به نام amir داریم که تو دایرکتوری فعلی مون ایجادش کردیم. وقتی دستور زیر رو اجرا میکنیم همونطور که گفتیم هیچ خروجی دریافت نمیکنیم اما از اونجا که ما فایلمون رو ایجاد کردیم باید خروجی عدد صفر رو تو متغیر ? مشاهده کنیم. به دستور زیر توجه کنید :

:~# touch amir.txt
:~# test -e amir.txt
:~# echo $?
0

سوئیچ s-

این سوئیچ نیز مانند سوئیچ e- است با این تفاوت که قابلیت این رو داره که مشخص کنه که سایز فایل بزرگتر از 0 هست یا نه. مثلا ما یک فایل به نام amir.txt میسازیم و داخلش یه چیزایی مینویسیم بعد با این دستور از اینکه سایز فایل بزرگتر از صفر هستش یعنی اینکه حاوی محتوا هست اطمینان حاصل میکنیم. به دستورات زیر توجه کنید :

:~# cat amir.txt
Hi Welcome to ITPro.ir website!
:~# test -s amir.txt
:~# echo $?
0

همونطور که دیدید ما هنگام اجرای دستور ؟$ echo فهمیدیم که فایل دارای محتویات هستش و خالی نیست.

سوئیچ d-

از این سوئیچ به این خاطر استفاده میشه که مشخص کنیم که چیزی که ما ساختیم(فایل و فولدر) فایل هستش یا فولدر ؟ به این معنی که اگه دستور زیر رو اجرا کردیم و بعدش دستور ?$ echo رو اجرا کردیم اگه خروجی برابر صفر(0) بود اینو میرسونه که اون یک فولدر یا دایرکتوری بوده.d هم تو این سوئیچ مخفف directory هستش.به دستورات زیر به خوبی توجه کنید :

:~# test -d itpro
:~# ls -l | grep itpro | cut -d" " -f1,11
:~# drwxr-xr-x itpro
:~# echo $?
0

سوئیچ gt-

در این سوئیچ gt مخفف greater than است. به ایم معنی که ما دو عدد را وارد میکنیم و اگر عدد اولی از عدد دومی بزرگتر بود خروجی ما true خواهد بود.به مثال زیر توجه کنید :

:~#  test 100 -gt 99 && echo "Yes, that's true." || echo "No, that's false."
:~#  Yes, that's true.

دستور فوق بیانگر میکند که عدد اول و عدد دوم را بگیر آنها را با مقایسه کن ، اگر اولی از دومی بزرگتر بود جمله اول را چاپ کن در غیر اینصورت جمله دوم را چاپ کن. از آنجا که عدد 100 از عدد 99 بزرگتر است پس جمله اول در خروجی چاپ میشود.دستور test بیشتر در اسکریپت نویسی در bash کاربرد دارد و در حالت عادی از آن استفاده نمیشود مگر برای آزمایش و کار کردن با آن. این دستور سوئیچ های نسبتا زیادی دارد که در حوصله این مطلب نمیگنجد از این رو در پایین مطلب مرجع این مطلب را ذکر کردم شما نیز در صورت علاقه مند بودن میتوانید با سوئیچ های بیشتر آن آشنا شوید و با آنها تمرین کنید.


امیرحسین کریم پور
امیرحسین کریم پور

مدیر ارشد توسینسو و متخصص سرویس های مایکروسافت

امیرحسین کریم پور ، مدیر ارشد توسینسو ، متخصص شبکه ، تخصص در حوزه سیستم عامل های کلاینت و سرور مایکروسافت و سرویس های مربوطه ، سیستم عامل لینوکس و... ، سابقه کار با سازمان ها و شرکت های مختلف در زمینه سرویس های مایکروسافت در قالب پروژه ، مشاوره و آموزش. علاقه مند به حوزه امنیت اطلاعات و تست نفوذ سنجی

نظرات