دنیای اسکریپت نویسی به زبان bash یک دنیای بسیار شیرین و تمام نشدنیست. امروز تصمیم داریم به شما آموزش دهیم که چگونه رنگ کاراکترهای ترمینال لینوکس خود را به صورت تصادفی تغییر دهید. شما در این اسکریپت با آرایه های در بش و همچنین حلقه های بی نهایت و اجرای آن ها در یک گراند و با رنگ ها آشنا خواهید شد.
برای شروع ابتدا مثل همیشه با vim شروع میکنیم. کافیست شما فایل bashrc. را باز کرده و محتویات زیر را در آن قرار دهید:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
# Arshatech.com colors () { arr[0]='\033[1;32m' arr[1]='\033[1;31m' arr[2]='\033[1;34m' arr[3]='\033[1;36m' arr[4]='\033[1;33m' arr[5]='\033[0m' } colors size=${#arr[@]} while true; do index=$(($RANDOM % $size)) printf "${arr[$index]}" done & |
سپس آن را ذخیره کرده و دستور زیر را در ترمینال وارد کنید:
1 |
root@arshatech:~# source ~/.bashrc |
سپس با تایپ دستورات خواهید دید که چگونه کاراکترهای ترمینال شما به صورت تصادفی تغییر رنگ خواهند داد.
این اسکریپت چه میکند؟
ما در این اسکریپت ابتدا یک تابع به نام colors نوشتیم و هر رنگ را به یک اندیس آرایه اختصاص داده ایم. بعنوان مثال عبارت زیر بیانگر رنگ سبز می باشد که با اندیس اول(شماره صفر تخصیص داده شده است):
1 |
arr[0]='\033[1;32m' |
شما میتوانید با استفاده از کدهای دیگر، رنگ های بیشتری را به ترمینال خود اضافه نمائید. بعد از اتمام این تابع آن را صدا زده ایم.
در نهایت یک حلقه بی نهایت را ایجاد کرده و پروسه آن را به بک گراند داده ایم تا حین کار با ترمینال پروسه از بین نرود. درون این حلقه بی نهایت ابتدا اندازه آرایه را گرفته و سپس یک مقدار(بخوانید رنگ) تصادفی از بین آن را انتخاب کرده و در ترمینال چاپ میکنیم.
1 دیدگاه
Unprogramable
بهتره یه sleep 1 به حلقه بینهایتت اضافه کنی . اگه توجه کنی وقتی برنامه اجرا میشه cpu میره روی ۱۰۰% ولی وقتی یه وقفه بذاری مثل sleep دیگه اینطوری نمیشه عملکردشم همینطوریه ! در کل ایده باحال بود !ممنون استفاده کردیم