دستور echo در لینوکس (نمایش متن در ترمینال)
دستور echo یکی از پرکاربردترین دستورات لینوکس است که هدف اصلی آن، پرینت متن یا رشته ای است که به عنوان آرگومان به آن داده شده است.
دستور اکو لینوکس در زمینه های مختلفی مثل نمایش محتوای متنی موردنظر در خروجی ترمینال، ایجاد فایل، تست و دیباگ اسکریپت ها و دستورات و … قابل استفاده است و اگر با سینتکس و آپشن های آن آشنا شوید، می بینید که کار کردن با این دستور چقدر راحت است.
دستوراتی مثل echo با اینکه بسیار سطحی و ساده به نظر می رسند ولی بسته به شرایط و موقعیت می توانند نقش مهمی در مدیریت سرور داشته باشند که برای ارتقا کارایی این ابزارها هم می توانید قدم اول یعنی خرید سرور مجازی لینوکس را با ما بردارید.
کاربردهای اصلی دستور echo در لینوکس
- نمایش پیام و متن در خروجی ترمینال
- نمایش مقادیر متغیرها
- نمایش نتایج دستورات
- ایجاد فایل متنی جدید
- اضافه کردن متن به فایل های موجود
- پاکسازی محتوای فایل موردنظر
- نمایش رشته های خاص
- استفاده در اسکریپت ها و دستورات برای نمایش پیام از وضعیت اجرا (تست و دیباگ)
- تولید خروجی برای دستورات یا برنامه ها
- …
پیش نیاز های استفاده از دستور echo در لینوکس
- سیستم یا سرور مجهز به لینوکس
- دسترسی به ترمینال
- نصب بودن دستور echo
با اینکه دستور echo به طور پیش فرض در اکثر توزیع های لینوکس نصب است ولی اگر بعد از اجرای دستور echo –version در سیستم یا سرور مجازی لینوکس، متوجه شدید که سیستم شما مجهز به این ابزار نیست، کافیست دستور نصب echo در توزیع لینوکس خود را اجرا کنید:
نصب echo در اوبونتو – دبیان
sudo apt-get install coreutils
نصب echo در CentOS و فدورا
sudo yum install coreutils
یا
sudo dnf install coreutils
سینتکس دستور echo لینوکس
سینتکس پایه این دستور به صورت زیر است:
echo [option] [string]
با بررسی مثال های کاربردی مربوط به دستور echo، نحوه کار با این دستور را یاد خواهید گرفت ولی آرگومان هایی وجود دارند که با اضافه کردن آن به دستور echo در لینوکس می توانید رفتار آن را به شکل دلخواه سفارشی سازی کنید.
آپشن های دستور echo
آپشن | توضیحات |
e | امکان ادغام آپشن های حاوی \ با محتوای متنی موردنظر |
a\ | ایجاد صدا موقع نمایش خروجی |
b\ | حذف تمام فضاهای خالی از متن یا رشته موردنظر |
c\ | حذف خط جدید بعد از نمایش پیام موردنظر |
e\ | ایجاد رنگ و افکت |
n\ | ایجاد خط جدید در قسمت استفاده شده |
t\ | ایجاد یک فضای تب افقی |
r\ | تعیین بخش موردنظر از یک متن برای نمایش در خروجی |
v\ | ایجاد یک فضای تب عمودی |
* | نمایش تمام فایل ها یا فولدرهای موجود در مسیر فعلی ترمینال (مثل ls و dir) |
n | حذف خط جدید از انتهای متن موردنظر (بعد از نمایش) |
برای دسترسی به اطلاعات بیشتر در مورد دستور echo می توانید از دو دستور زیر هم کمک بگیرید:
echo --help
man echo
مثال های کاربردی از دستور echo در لینوکس (ساده تا پیشرفته)
این بستگی به نیاز شما دارد که از دستور echo چگونه استفاده کنید ولی با بررسی مثال های زیر می توانید درک عمیق تری از کاربرد این دستور داشته باشید:
پرینت یک رشته متنی
ساده ترین کاربرد دستور echo این است که متن داده شده را در خروجی به شما نمایش دهد. برای این کار، نیازی به آپشن اضافی نیست و کافیست متن موردنظر را در دستور لحاظ کنید:
echo Hello, World!
نمایش فایل متنی به شکل های مختلف
برای اینکه متن یا رشته موردنظر را از حالت نمایش ساده در بیاورید و تغییرات کوچکی را در آن لحاظ کنید، می توانید از پارامتر e کمک بگیرید.
چند مثال)
اگر می خواهید متن موردنظر شما در بخش های خاصی بشکند و در خط جدید قرار بگیرد، باید از n\ استفاده کنید:
echo -e 'Hello, World! \nThis is test!'
اگر می خواهید فضاهای خالی موجود در متن موردنظر را حذف کنید، کافیست بعد هر فضای خالی موجود در متن یک b\ قرار دهید.
echo -e 'Hello, \bWorld!,This \bis \btest!'
برای ایجاد فاصله ای به اندازه tab در داخل متن، کافیست در بخش های موردنظر از t\ استفاده کنید:
echo -e 'Hello, \tWorld!,This \tis \ttest!'
منتها این تب به صورت افقی است و اگر می خواهید تب ها به صورت عمودی لحاظ شوند، می توانید از v\ استفاده کنید:
echo -e 'Hello, \vWorld!,This \vis \vtest!'
اگر می خواهید موقع نمایش خروجی، در قسمت های خاصی آلارم تولید شود می توانید از a\ استفاده کنید:
echo -e 'Hello, \aWorld!,This is \atest!'
موقع اجرای این دستور، دو بار صدای آلارم شنیده می شود.
چاپ مقدار یک متغیر
برای مشاهده مقدار یک متغیر در خروجی echo می توانید از $ کمک بگیرید. حالا این متغیر می تواند هر چیزی باشد.
به عنوان مثال اگر می خواهید نام کاربر فعلی ترمینال را ببینید، می توانید از دستور زیر استفاده کنید:
echo $USER
در صورت تمایل می توانید متغیرها را خودتان تعریف کنید و در داخل متن مربوط به دستور echo فراخوانی کنید.
برای اینکار ترمینال را باز کنید و متغیرهای موردنظر را تعریف کنید:
name="zahra"
سپس آن را به صورت زیر در دستور echo قرار دهید:
echo "Hello, $name! This is test!"
البته خروجی یک دستور را هم می توانید در قالب متغیر در دستور echo قرار داد. به عنوان مثال اگر می خواهید لیست محتویات دایرکتوری فعلی را با ls ببینید، می توانید دستور echo و ls را به صورت زیر ترکیب کنید:
echo "This is the list of directories and files on this system: $(ls)"
نمایش محتوای دایرکتوری فعلی
یکی دیگر از کاربردهای دستور echo، نمایش لیست محتویات مسیر فعلی ترمینال است که برای این کار کافیست یک * به دستور اضافه کنید:
echo *
اگر نوع خاصی از فایل ها را در نظر دارید، می توانید پسوند آن را به دستور اضافه کنید:
echo *.txt
echo *.pdf
echo *.php
echo *.jpeg
ایجاد فایل جدید با دستور اکو
برای ایجاد فایل جدید، کافیست با دستور cd در مسیر موردنظر قرار بگیرید و سپس اسم دستور را به صورت زیر در دستور echo لحاظ کنید:
echo "Some line" > new_file.txt
اگر دوست دارید این فایل خالی باشد، می توانید دستور اکو را به صورت زیر اجرا کنید:
echo > new_file.txt
جا دارد به این نکته هم اشاره کنیم که دستور اکو برای خالی سازی محتوای فایل در لینوکس هم قابل استفاده است.
به این صورت که اگر فایل موردنظر شما از قبل در سیستم موجود باشد، اجرای دستور بالا برای آن باعث حذف تمام محتوای آن می شود:
echo > file.txt
نوشتن یک خط جدید در فایل موردنظر
اگر می خواهید خط جدیدی را به انتهای فایل موردنظر اضافه کنید، می توانید دستور tee و echo را با عملگر پایپ یا ریداریرکت به هم وصل کنید.
echo "New Line Added." | tee output.txt
یا اینکه متن را به فایل موردنظر ریدایرکت کنید:
echo "New Line Added." > output.txt
حالا برای بررسی محتوای فایل می توانید از دستور زیر استفاده کنید:
cat output.txt
تغییر رنگ خروجی
به طور پیش فرض، رنگ خروجی دستور echo با تم ترمینال هماهنگ است ولی اگر به خاطر دلایلی مثل قابل درک شدن یک اسکریپت نیاز دارید که رنگ پیش فرض خروجی را تغییر دهید، می توانید کدهای ANSI را به صورت زیر در دستور اکو لینوکس لحاظ کنید:
echo -e "This is \033[0;31mRed"
همانطور که می بینید باز هم آپشن e وارد عمل شده است و 31;0 کد ANSI مربوط به رنگ قرمز است که با قرار گرفتن قبل از کلمه Red باعث قرمز رنگ شدن آن شده است.
رنگ سبز:
echo -e "This is \033[0;32mGreen"
رنگ آبی:
echo -e "This is \033[0;34mBlue"
رنگ زرد:
echo -e "This is \033[1;33mYellow"
کافیست این آپشن ها و کدها را به شکل درست در دستور لحاظ کنید تا خروجی دستور اکو حالت جذاب تری به خود بگیرد.
تست و دیباگ اسکریپت
فرض کنید یک اسکریپت ساده برای بررسی وضعیت اتصال به اینترنت نوشته اید و می خواهید برای بررسی وضعیت از دستور اکو استفاده کنید.
echo "Starting the internet connection test..."
ping -c 1 google.com &> /dev/null
if [ $? -eq 0 ]; then
echo "Internet connection is up."
else
echo "Internet connection is down."
fi
echo "Test completed."
این اسکریپت پینگ را برای سرور گوگل اجرا می کند تا وضعیت اتصال اینترنتی بررسی شود و سپس بر اساس اینکه پینگ با موفقیت اجرا شده است یا نه، دستور اکو خروجی Internet connection is up یا Internet connection is down را به شما نشان می دهد.
ترکیب دستور echo با دستورات لینوکسی
جستجوی یک الگو در خروجی متنی اکو
echo "This is a test string" | grep "test"
این دستور در رشته This is a test string به دنبال کلمه test می گردد و خطوط حاوی این کلمه را در خروجی نشان می دهد.
تبدیل حروف کوچک متن موردنظر به حروف بزرگ معادل
echo "Hello World" | tr '[:lower:]' '[:upper:]'
نمایش تاریخ و ساعت در متن
برای این کار کافیست از دستور date و پارامترهای آن به عنوان متغیر استفاده کنید و آن را در دستور echo لحاظ کنید:
echo "Current date and time: $(date '+%Y-%m-%d %H:%M:%S')"
حذف خطوط تکراری از متن
echo -e "apple\nbanana\napple\ncherry\nbanana" | sort | uniq
جایگزین کردن یک کلمه با کلمه دیگر در متن
برای این کار کافیست دستور echo و sed را به صورت زیر با هم ترکیب کنید:
echo "Hello World" | sed 's/World/Everyone/'
با اینکه این مثال ها جزو کاربردی ترین نمونه ها از دستور echo در لینوکس هستند ولی سعی کنید خودتان را به این ها محدود نکنید و بر اساس نیاز خود از قدرت و کارایی دستور اکو استفاده بیشتری داشته باشید.
سخن آخر
دستور echo در لینوکس برای نمایش خروجی در ترمینال استفاده می شود و این شما هستید که با استفاده از آپشن های آن یا ترکیب دستور echo با دستورات دیگر می توانید به کارایی بیشتری از آن دست پیدا کنید.