دستور continue در لینوکس
در این بخش به بررسی دستور continue در لینوکس می پردازیم، در دنیای سیستمعاملهای مبتنی بر لینوکس، مدیریت فرآیندها و جریانهای کاری یکی از مهمترین مهارتها برای کاربران است. هنگامی که برنامهنویسان و مدیران سیستمها با اسکریپتهای Bash و دستورات سیستمعامل کار میکنند، ممکن است لازم باشد که برخی از بخشهای کد خود را با استفاده از دستورات کنترلی تنظیم کنند. دستور continue
یکی از این ابزارهای مهم است که به کاربران امکان کنترل بهتر جریانهای تکراری (حلقهها) در اسکریپتها را میدهد.
این دستور در برنامهنویسی Bash و سایر زبانهای اسکریپتی مبتنی بر یونیکس، کاربرد گستردهای دارد. هدف اصلی از استفاده این دستور، انتقال کنترل از یک نقطه درون حلقه به ابتدای همان حلقه است، بدون اینکه کل حلقه متوقف شود. در این مقاله، ما به بررسی جزئیات دستور continue
میپردازیم، نحوه کارکرد آن را شرح میدهیم و نمونههایی از استفاده آن در اسکریپتهای واقعی ارائه خواهیم کرد.
دستور continue
در لینوکس چیست؟
دستور continue
یکی از دستورات کنترلی است که در زبان Bash و سایر پوستههای یونیکس برای کنترل جریان تکراری مورد استفاده قرار میگیرد. وقتی این دستور در یک حلقه (مثل for
، while
یا until
) اجرا میشود، به جای خاتمه کامل حلقه، فقط یک تکرار جاری را متوقف میکند و به اجرای تکرار بعدی حلقه میپردازد. در واقع، continue
باعث میشود که باقی دستورات درون حلقه برای تکرار جاری نادیده گرفته شوند و برنامه بلافاصله به ابتدای حلقه برگردد تا تکرار جدید آغاز شود.
این دستور به ویژه در مواردی کاربرد دارد که نیاز به نادیده گرفتن برخی شرایط خاص در یک حلقه و ادامه فرآیند کلی حلقه باشد. به کمک این دستور میتوان کدهای پیچیدهتر و مؤثرتری نوشت که منطق بهتری برای کنترل فرآیندها دارند.
ساختار کلی دستور continue
continue [n]
n
: یک مقدار عددی اختیاری است که مشخص میکند چند سطح از حلقههای تو در تو باید تحت تاثیر دستور قرار بگیرند. اگرn
مشخص نشود، مقدار پیشفرض آن برابر با ۱ است که تنها حلقه جاری را تحت تأثیر قرار میدهد.
کاربرد دستور continue
در حلقهها
۱. دستور continue
در حلقههای for
یکی از رایجترین مکانهایی که دستور continue
استفاده میشود، در حلقههای for
است. در اینجا، دستور میتواند برای نادیده گرفتن برخی از مقادیر و ادامه اجرای حلقه برای بقیه عناصر مورد استفاده قرار گیرد.
مثال:
#!/bin/bash
for i in {1..5}
do
if [ $i -eq 3 ]
then
continue
fi
echo "Number: $i"
done
در این مثال، زمانی که مقدار i
برابر با ۳ میشود، دستور continue
اجرا شده و مقدار ۳ نادیده گرفته میشود. خروجی برنامه به این صورت خواهد بود:
Number: 1
Number: 2
Number: 4
Number: 5
همانطور که مشاهده میکنید، مقدار ۳ به دلیل وجود دستور continue
چاپ نمیشود و حلقه با سایر مقادیر ادامه پیدا میکند.
۲. دستور continue
در حلقههای while
دستور continue
همچنین در حلقههای while
قابل استفاده است. این دستور به ما کمک میکند تا در شرایط خاصی، برخی از بخشهای تکرار حلقه را رد کنیم و حلقه را با شرایط جدید ادامه دهیم.
مثال:
#!/bin/bash
count=1
while [ $count -le 5 ]
do
if [ $count -eq 3 ]
then
count=$((count+1))
continue
fi
echo "Count: $count"
count=$((count+1))
done
خروجی این برنامه مشابه حلقه for
است:
Count: 1
Count: 2
Count: 4
Count: 5
در اینجا، زمانی که مقدار count
برابر با ۳ میشود، دستور continue
باعث میشود که تکرار حلقه متوقف شود و مقدار بعدی بررسی شود.
استفاده از continue
در حلقههای تو در تو
دستور continue
در حلقههای تو در تو نیز قابل استفاده است. به کمک پارامتر n
میتوان تعیین کرد که کدام سطح از حلقهها باید متوقف شود. این قابلیت میتواند در برنامههای پیچیدهتر که شامل چندین حلقه تو در تو هستند بسیار مفید باشد.
مثال:
#!/bin/bash
for i in {1..3}
do
for j in {1..3}
do
if [ $j -eq 2 ]
then
continue 2
fi
echo "i = $i, j = $j"
done
done
خروجی این کد:
i = 1, j = 1
i = 2, j = 1
i = 3, j = 1
در این مثال، وقتی j
برابر با ۲ میشود، دستور continue 2
باعث میشود که نه تنها حلقه داخلی بلکه حلقه خارجی نیز یک تکرار را رد کند.
مقایسه دستور continue
و break
در حالی که continue
برای نادیده گرفتن بخشی از یک حلقه استفاده میشود و به اجرای حلقه ادامه میدهد، دستور break
برای پایان دادن به اجرای حلقه به کار میرود. این دو دستور از جمله ابزارهای کنترلی هستند که میتوانند به مدیریت بهتر جریانهای کاری کمک کنند.
مثال با break
:
#!/bin/bash
for i in {1..5}
do
if [ $i -eq 3 ]
then
break
fi
echo "Number: $i"
done
در اینجا، اجرای حلقه زمانی که مقدار i
برابر با ۳ میشود به طور کامل متوقف میشود و خروجی زیر را خواهیم داشت:
Number: 1
Number: 2
در حالی که با continue
میتوان فقط بخشی از تکرار را رد کرد، با break
میتوان اجرای کل حلقه را متوقف کرد.
کاربردهای عملی continue
در اسکریپتها
استفاده از دستور continue
میتواند در اسکریپتهای واقعی بسیار مفید باشد. به عنوان مثال، در مواقعی که نیاز به پردازش مجموعهای از فایلها داریم و میخواهیم برخی از فایلها را بر اساس شرایط خاصی نادیده بگیریم، میتوان از این دستور استفاده کرد.
مثال:
فرض کنید یک دایرکتوری شامل چندین فایل است و ما میخواهیم فقط فایلهای متنی (.txt
) را پردازش کنیم.
#!/bin/bash
for file in *
do
if [[ $file != *.txt ]]
then
continue
fi
echo "Processing file: $file"
done
در این مثال، دستور continue
به ما کمک میکند تا فایلهایی که پسوند .txt
ندارند را نادیده بگیریم و فقط فایلهای متنی را پردازش کنیم.
دستور continue
یکی از ابزارهای قدرتمند در کنترل جریانهای کاری در اسکریپتهای Bash و سایر زبانهای اسکریپتی مبتنی بر یونیکس است. این دستور به کاربران اجازه میدهد که بخشهایی از حلقهها را نادیده بگیرند و به اجرای دیگر تکرارهای حلقه ادامه دهند. در این مقاله، به بررسی نحوه کارکرد این دستور در حلقههای مختلف پرداختیم و کاربردهای آن را با مثالهای عملی شرح دادیم. با استفاده از این دستور، میتوان اسکریپتهای کارآمدتری نوشت و فرآیندهای پیچیدهتری را به سادگی مدیریت کرد.
منابع
- Bash Scripting Guide
- GNU Bash Manual
- Linux Command Reference
آیا این مطلب برای شما مفید بود ؟