در BASH:
# Bash if [[ $foo = *bar* ]]
مورد فوق کمابیش در تمام نگارشهای Bash کار میکند. Bash نگارش 3 (و بالاتر) همچنین عبارتهای منظم را هم مجاز میداند:
# Bash my_re='ab*c' if [[ $foo =~ $my_re ]] # bash 3, matches abbbbcde, or ac, etc.
برای اشارات بیشتر در مورد دستکاری رشتهها در Bash، پرسش و پاسخ شماره 100 را ببینید.
اگر شما به جای Bash در BourneShell برنامه نویسی میکنید، ترکیب دستوری قابل حملتر(اما نا زیباتری) وجود دارد:
# Bourne case "$foo" in *bar*) .... ;; esac
case به شما اجازه میدهد متغیرها را در مقابل الگوهای globbingشکل (به انضمام globهای توسعه یافته) در صورتی که پوسته شما آنها را ارائه میکند،مطابقت دهید. اگر شما به روش قابل حمل برای مطابقت متغیرها در مقابل عبارات منظم نیاز دارید، از grep یا egrep استفاده کنید.
# Bourne if echo "$foo" | grep bar >/dev/null 2>&1; then ...
پرسش وپاسخ 41 (آخرین ویرایش 2010-11-29 22:24:01 توسط GreyCat)