yes - چاپ یک رشته تا هنگام توقف فرایند

دستور yes یک رشته به عنوان آرگومان می‌پذیرد و آن را به‌طور مکرر چاپ می‌کند تا هنگامی که بمیرد!

شکل کلی دستور yes:

$ yes [option] [string]

 

شاید شما هم درهنگام کار با سیستم‌تان با این پیغام (یا هشدار) روبرو شده‌اید :

...? (y or n)

منظور از سه نقطه (...) می‌تواند هر پیغامی باشد. برای مثال :

$ cat /proc/
Display all 263 possibilities? (y or n)

به این منظور که آیا مایل هستید که تمامی محتوا را نشان دهد که معمولا برای مسیرها یا فایل‌هایی این پیغام نمایش داده می‌شود که محتوای زیادی داشته باشند.

یا ممکن است هنگامی که بخواهید محتوای یک مسیر را حذف کنید :

rm -i .../Test/*
rm: remove regular file ‘.../Test/1’? n
rm: remove regular file ‘.../Test/2’? y
rm: remove regular file ‘.../Test/3’? n
.
.
.

البته ما دراینجا مخصوصاً از گزینه‌ی اختیاری i-در دستور rm استفاده کرده‌ایم که قبل از هرگونه حذفی از ما سوال پرسیده شود.

نکته: در برخی توزیع‌ها، اگر از این گزینه‌اختیاری استفاده نکنید، بلادرنگ تمامی محتوا حذف خواهد شد.

اگر هنگام حذف فایل‌های مهم هستید این سوال از شما پرسیده خواهد شد.

درواقع این دستور یک آرگومانی را می‌گیرد و به صورت مداوم از طرف کاربر هرگونه سوالی را که پرسیده شود، قبول خواهد کرد تا جایی که به اتمام برسد که این اتمام ممکن است یا خود دستور به پایان برسد(فعالیت آن) یا از سوی کاربر متوقف شود.

نکته: چون دستورات گنو/لینوکس به صورت فوق‌العاده سریع عمل می‌کنند، پس توقف از سوی کاربر عملاً امکان پذیر نخواهد بود، بدین منظور درهنگام استفاده از این دستور، کاملاً آگاهانه برخورد کنید.

از این دستور به عنوان دستور کمکی برای بعضی از دستورات استفاده کنید، چرا که بیشتر دستورات، گزینه‌ی اختیاری با این مضمون دارند. برای مثال :

# apt-get -y

همین‌طور که مشاهده می‌کنید، با اضافه کردن این گزینه‌ی اختیاری به این دستور، دیگر نیازی به دستور yes را نخواهید داشت.

پس دو دستور زیر کاملاً مشابه یکدیگر خواهند بود :

دستور اول:

$ rm -f .../Test/*

دستور دوم:

$ yes | rm .../Test/*

ما در اینجا از دستور rm با گزینه‌ی اختیاری f-برای حذف تمامی محتویات استفاده کردیم.