وبلاگ رسانگار
با ما حرفه ای باشید

سرور مجازی NVMe

فرمان Bash Test

0 2
زمان لازم برای مطالعه: 4 دقیقه


که در bash پوسته، دستور تست یک عنصر را با عنصر دیگر مقایسه می کند و true یا false را برمی گرداند. که در bash اسکریپت نویسی، فرمان تست بخشی جدایی ناپذیر از عبارات شرطی است که منطق و جریان برنامه را کنترل می کند.

این راهنما روش استفاده از 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”.

$ test 1 -eq 2 && echotrue|| echofalse

فرمان Bash Test

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 “[“.

$ [ 1 -eq 2 ] && echoدرست است، واقعی|| echoنادرست

فرمان Bash Testفرمان Bash Test

اصطلاح

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

رشته

در برنامه نویسی، رشته به مجموعه ای از کاراکترها گفته می شود که عموماً برای نمایش متن استفاده می شوند. به عنوان مثال، “سلام جهان” در زیر echo دستور به عنوان یک رشته در نظر گرفته می شود.

$ echo “سلام دنیا.”

فرمان Bash Testفرمان Bash Test

دستور test از عبارت های رشته ای زیر پشتیبانی می کند.

  • -n : طول رشته غیر صفر است.
  • -z : طول رشته صفر است.
  • : مقدار رشته غیر صفر است (معادل “-n “).
  • = : هر دو string_a و string_b برابر هستند.
  • != : رشته های string_a و string_b برابر نیستند.

بیایید این عبارات را امتحان کنیم.

$ [ -n “hello world” ] && echoدرست است، واقعی|| echoنادرست

فرمان Bash Testفرمان Bash Test

$ [ -z “hello world” ] && echoدرست است، واقعی|| echoنادرست

فرمان Bash Testفرمان Bash Test

$ [ “hello world” != “Hello World” ] && echoدرست است، واقعی|| echoنادرست

فرمان Bash Testفرمان Bash Test

$ [ “hello world” = “Hello World” ] && echoدرست است، واقعی|| echoنادرست

فرمان Bash Testفرمان Bash Test

عدد صحیح

اولین مثال در این راهنما مقایسه اعداد صحیح را نشان می دهد. راه های بیشتری برای مقایسه اعداد صحیح وجود دارد.

  • -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 است.

بیایید این عبارات را عملی کنیم.

$ [ 5 -eq 10 ] && echoدرست است، واقعی|| echoنادرست

فرمان Bash Testفرمان Bash Test

$ [ 5 -gt 2 ] && echoدرست است، واقعی|| echoنادرست

فرمان Bash Testفرمان Bash Test

$ [ 4 -le 5 ] && echoدرست است، واقعی|| echoنادرست

فرمان Bash Testفرمان Bash Test

فایل

فایل ها نیز می توانند بخشی از عبارت باشند. در اینجا لیستی از عبارات فایل پشتیبانی شده است.

  • -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 وجود دارد. این یک سوکت است.

بیایید به چند نمونه نگاهی بیندازیم.

$ [ -x /usr/bin/bash ] && echo دلار؟

فرمان Bash Testفرمان Bash Test

$ [ -s /bin/bash ] && echo دلار؟

فرمان Bash Testفرمان Bash Test

$ [ -r /bin ] && echo دلار؟

فرمان Bash Testفرمان Bash Test

$ [ -e /hello_world ] && echo “درست است، واقعی” || echo “کاذب”

فرمان Bash Testفرمان Bash Test

اجرای آزمون در bash اسکریپت ها

تا اینجا، روش استفاده از دستور تست را برای تعیین درست یا نادرست بودن یک شرط خاص نشان داده ایم. ما می توانیم این را اجرا کنیم bash اسکریپت هایی برای تصمیم گیری مفید

به اسکریپت کوتاه زیر نگاهی بیندازید.

#!/صندوقچه/bash
اگر [ $(whoami) = root ]; سپس

echo “ریشه”
دیگر

echo “روت نیست”
فی

فرمان Bash Testفرمان Bash Test

در اینجا دستور if درست یا نادرست بودن شرط را بررسی می کند. با استفاده از دستور test به راحتی می توانیم مقدار Boolean را بدست آوریم.

اسکریپت را با و بدون دسترسی روت اجرا کنید.

دلار/ساختگی.ش
$ سودو ./ساختگی.ش

فرمان Bash Testفرمان Bash Test

این یک نمایش عبارت if-else ساده است. با خیال راحت بررسی کنید bash بیانیه های if-else برای کاربردهای عمیق بیشتر.

افکار نهایی

دستور تست ساده اما قدرتمند است. این راهنما روش های مختلف استفاده از آزمون را توضیح داده و نشان می دهد. لیست کامل تمام عبارات پشتیبانی شده در دسترس است روی مرد page.

$ مرد تست

فرمان Bash Testفرمان Bash Test

محاسبات مبارک!

برای نگارش بخشهایی از این متن ممکن است از ترجمه ماشینی یا هوش مصنوعی GPT استفاده شده باشد
لطفا در صورت وجود مشکل در متن یا مفهوم نبودن توضیحات، از طریق دکمه گزارش نوشتار یا درج نظر روی این مطلب ما را از جزییات مشکل مشاهده شده مطلع کنید تا به آن رسیدگی کنیم

زمان انتشار: 1402-12-30 23:10:05

امتیاز شما به این مطلب
پیشنهاد می‌کنیم بخوانید:  روش تخصیص خروجی یک فرمان لینوکس به یک متغیر – bash
دیدگاه شما در خصوص مطلب چیست ؟

آدرس ایمیل شما منتشر نخواهد شد.

لطفا دیدگاه خود را با احترام به دیدگاه های دیگران و با توجه به محتوای مطلب درج کنید