حلقه while true در shell

بعضی وقت‌ها پیش میاد که دوست دارم توی بش یک دستوری مرتب اجرا بشه و تا زمانی که خروجی مورد نظرم رو بگیرم به اجرا کردن این دستور ادامه بده. برای این کار می‌شه یه حلقه while نوشت که مرتب دستور مورد نظر رو اجرا کنه فقط کافیه به جای while true بنویسید while : (دو نقطه هم هست) یک چیزی مثل این:

این قسمت sleep 1 رو بزارید چون برای بعضی دستورها وقتی ctrl+c می‌زنم اگه این sleep 1 نباشه حلقه متوقف نمی‌شه.

دستور بالا به صورت یک خطی میشه این:

توضیح این که شما می‌تونید از دستور break هم برای خروج از حلقه استفاده کنید. توی این قسمت یک مثال خیلی ساده از break رو اوردم، توی مثال اگه زمان ثانیه شمار سیستم مضربی از ۱۰ باشه دستور break اجرا می‌شه و برنامه از حلقه خارج می‌شه:

البته راه ساده‌تر از while دستور watch هست که همین کار رو می‌کنه و لازم نیست حلقه بنویسید ولی من با این وجود به نوشتن حلقه علاقه بیشتری دارم 🙂

مشکل ssh و زبان فارسی

مدتیه زبان اصلی سیستمم فارسیه برای همین وقتی روی یک سروری ssh می‌زنم یه همچین ارورهای رو زیاد می‌بینم:

دلیلش اینه که چون سیستم من فارسی هست وقتی ssh می‌زنم، کلاینت ssh زبان این سشن رو فارسی ست می‌کنه، مشکل این جا رخ می‌ده که معمولا سرورها تنظیمات locale فارسی روشون انجام نشده در نتیجه باعث می‌شه این ارورها پیش بیان.

برای حل این مشکل کافیه توی ssh کلاینت این اوپشنی که زبان فعلی من رو به سرور می‌فرسته غیرفعال کنیم تا اتصالمون با همون زبان پیشفرض سرور برقرار بشه.

برای این کار فایل etc/ssh/ssh_config رو از توی سیستمتون باز کنید و خط زیر رو توش کامنت کنید:

تمام، مشکل حل شد! حالا با خیال راحت ssh بزنید.