ایستگاه های کاری آنلاین OnWorks Linux و Windows

لوگو

میزبانی آنلاین رایگان برای ایستگاه های کاری

<قبلی | فهرست | بعدی>

نسخه مدرن تر تست

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

[[ بیان ]]

کجا، مانند آزمون, بیان عبارتی است که به یک نتیجه درست یا نادرست ارزیابی می شود. در [[]] دستور بسیار شبیه است آزمون (از همه عباراتش پشتیبانی می کند)، اما


یک عبارت رشته جدید مهم اضافه می کند:

string1 =~ regex

که true برمی گرداند اگر string1 با عبارت منظم توسعه یافته مطابقت دارد regex. این امر فرصت های زیادی را برای انجام کارهایی مانند اعتبار سنجی داده ها باز می کند. در مثال قبلی ما از عبارات عدد صحیح، اسکریپت در صورت ثابت شکست می خورد INT شامل هر چیزی به جز یک عدد صحیح بود. اسکریپت به راهی برای تأیید اینکه ثابت حاوی یک عدد صحیح است نیاز دارد. استفاده كردن [[]] با =~ عملگر عبارت string، ما می توانیم اسکریپت را به این ترتیب بهبود دهیم:



#! / bin / bash


# test-integer2: ارزش یک عدد صحیح را ارزیابی کنید.


INT=-5


اگر [[ "$INT" =~ ^-?[0-9]+$ ]]; سپس

اگر [ $INT -eq 0 ]; سپس تکرار "INT صفر است."

دیگر

اگر [ $INT -lt 0 ]; سپس تکرار "INT منفی است."

دیگر

echo "INT مثبت است."

fi

اگر [ $((INT % 2)) -eq 0 ]; سپس "INT زوج است."

دیگر

echo "INT عجیب است."

fi

fi

دیگر

echo "INT یک عدد صحیح نیست." >&2 خروج 1

fi

#! / bin / bash


# test-integer2: ارزش یک عدد صحیح را ارزیابی کنید.


INT=-5


اگر [[ "$INT" =~ ^-?[0-9]+$ ]]; سپس

اگر [ $INT -eq 0 ]; سپس تکرار "INT صفر است."

دیگر

اگر [ $INT -lt 0 ]; سپس تکرار "INT منفی است."

دیگر

echo "INT مثبت است."

fi

اگر [ $((INT % 2)) -eq 0 ]; سپس "INT زوج است."

دیگر

echo "INT عجیب است."

fi

fi

دیگر

echo "INT یک عدد صحیح نیست." >&2 خروج 1

fi


با اعمال عبارت منظم، می توانیم مقدار of را محدود کنیم INT فقط رشته هایی که با علامت منهای اختیاری و به دنبال آن یک یا چند عدد شروع می شوند. این عبارت همچنین امکان مقادیر خالی را از بین می برد.

یکی دیگر از ویژگی های اضافه شده از [[]] این است که == عملگر از تطبیق الگوی مشابه با بسط نام مسیر پشتیبانی می کند. مثلا:



[me@linuxbox ~]$ FILE=foo.bar

[me@linuxbox ~]$ FILE=foo.bar

نسخه مدرن تر تست


[me@linuxbox ~]$ اگر [[ $FILE == foo.* ]]; سپس

> echo "$FILE با الگوی 'foo.*' مطابقت دارد."

> fi

foo.bar با الگوی "foo.*" مطابقت دارد

[me@linuxbox ~]$ اگر [[ $FILE == foo.* ]]; سپس

> echo "$FILE با الگوی 'foo.*' مطابقت دارد."

> fi

foo.bar با الگوی "foo.*" مطابقت دارد


این باعث می شود [[]] برای ارزیابی نام فایل ها و مسیرها مفید است.


برترین سیستم عامل Cloud Computing در OnWorks: