از طریق منوی جستجو مطلب مورد نظر خود در وبلاگ را به سرعت پیدا کنید
فرمان Bash Test
سرفصلهای مطلب
این راهنما روش استفاده از bash دستور تست
دستور تست
دستور تست یک را می گیرد اصطلاح به عنوان یک استدلال پس از محاسبه EXPRESSION، آزمون مقداری را به the برمی گرداند bash متغیر “$?”. اگر مقدار 0 باشد، ارزش عبارت درست است. اگر مقدار 1 باشد، ارزیابی عبارت نادرست بود.
دو نحو برای استفاده از دستور تست وجود دارد.
$ [ EXPRESSION ]
توجه داشته باشید که در مورد “[“, there’s a space at both ends of the EXPRESSION.
Test usage
Here’s a short example of how the test command works. We’ll be checking whether 1 equals 2. If true, then the output will be “true”. Otherwise, the output will be “false”.
Let’s break it down.
- test: The test command.
- 1: The first element for comparison.
- -eq: Comparison method (whether values are equal).
- 2: The second element for comparison.
If the test portion is true, then the first echo command will execute. Otherwise, the second echo command will execute.
The same command can be expressed using “[“.
اصطلاح
عبارت همان چیزی است که به فرمان تست قدرت واقعی خود را می دهد. آزمون می تواند از رشته ها، فایل ها و اعداد صحیح برای مقایسه استفاده کند. در اینجا یک لیست سریع از تمام فرمت های بیان تست موجود است.
رشته
در برنامه نویسی، رشته به مجموعه ای از کاراکترها گفته می شود که عموماً برای نمایش متن استفاده می شوند. به عنوان مثال، “سلام جهان” در زیر echo دستور به عنوان یک رشته در نظر گرفته می شود.
دستور test از عبارت های رشته ای زیر پشتیبانی می کند.
- -n
: طول رشته غیر صفر است. - -z
: طول رشته صفر است. : مقدار رشته غیر صفر است (معادل “-n “). = : هر دو string_a و string_b برابر هستند. != : رشته های string_a و string_b برابر نیستند.
بیایید این عبارات را امتحان کنیم.
عدد صحیح
اولین مثال در این راهنما مقایسه اعداد صحیح را نشان می دهد. راه های بیشتری برای مقایسه اعداد صحیح وجود دارد.
-eq : Integer_a برابر integer_b است. -ne : Integer_a برابر integer_b نیست -ge : Integer_a بزرگتر یا مساوی integer_b است. -gt : Integer_a بزرگتر از integer_b است. -le : Integer_a کمتر یا مساوی integer_b است. -lt : Integer_a کمتر از integer_b است.
بیایید این عبارات را عملی کنیم.
فایل
فایل ها نیز می توانند بخشی از عبارت باشند. در اینجا لیستی از عبارات فایل پشتیبانی شده است.
-ef : هر دو file_a و file_b دارای دستگاه و شماره inode مشابهی هستند. اگر درست باشد، به این معنی است که فایلها به احتمال زیاد به هم پیوند داده شدهاند. درباره پیوندهای نمادین لینوکس بیشتر بدانید. -nt : از نظر تاریخ اصلاح، file_a جدیدتر از file_b است. -ot : File_a قدیمیتر از file_b است.
بقیه عبارات فایل پشتیبانی شده مربوط به یک ویژگی واحد از یک فایل است.
- -e
: File_a وجود دارد. - -f
: File_a وجود دارد و یک فایل معمولی است. - -d
: File_a وجود دارد و یک دایرکتوری است. - -r
: File_a با مجوزهای خواندن وجود دارد. - -w
: File_a با مجوزهای نوشتن وجود دارد. - -x
: File_a با مجوزهای اجرا وجود دارد. - -s
: File_a وجود دارد و اندازه فایل بزرگتر از صفر است. - -O
: File_a وجود دارد و مالک شناسه کاربر موثر است. - -G
: File_a وجود دارد و مالک شناسه گروه موثر است. - -h
: File_a وجود دارد و یک پیوند نمادین است. - -L
: File_a وجود دارد و یک پیوند نمادین است. - -b
: File_a وجود دارد. این یک فایل مخصوص بلوک است. - -c
: File_a وجود دارد. این یک فایل مخصوص شخصیت است. - -S
: File_a وجود دارد. این یک سوکت است.
بیایید به چند نمونه نگاهی بیندازیم.
اجرای آزمون در bash اسکریپت ها
تا اینجا، روش استفاده از دستور تست را برای تعیین درست یا نادرست بودن یک شرط خاص نشان داده ایم. ما می توانیم این را اجرا کنیم bash اسکریپت هایی برای تصمیم گیری مفید
به اسکریپت کوتاه زیر نگاهی بیندازید.
اگر [ $(whoami) = root ]; سپس
echo “ریشه”
دیگر
echo “روت نیست”
فی
در اینجا دستور if درست یا نادرست بودن شرط را بررسی می کند. با استفاده از دستور test به راحتی می توانیم مقدار Boolean را بدست آوریم.
اسکریپت را با و بدون دسترسی روت اجرا کنید.
$ سودو ./ساختگی.ش
این یک نمایش عبارت if-else ساده است. با خیال راحت بررسی کنید bash بیانیه های if-else برای کاربردهای عمیق بیشتر.
افکار نهایی
دستور تست ساده اما قدرتمند است. این راهنما روش های مختلف استفاده از آزمون را توضیح داده و نشان می دهد. لیست کامل تمام عبارات پشتیبانی شده در دسترس است روی مرد page.
محاسبات مبارک!
لطفا در صورت وجود مشکل در متن یا مفهوم نبودن توضیحات، از طریق دکمه گزارش نوشتار یا درج نظر روی این مطلب ما را از جزییات مشکل مشاهده شده مطلع کنید تا به آن رسیدگی کنیم
زمان انتشار: 1402-12-30 23:10:05