دستور echo
دستور echo یکی از دستورات پایه در خط فرمان می باشد. از این دستور برای نمایش یک عبارت متنی در خروجی استاندارد استفاده می شود. در این متن به بررسی دستور echo و کاربردهای آن می پردازیم.
* نمایش یک عبارت در خروجی
& با استفاده از دستور زیر عبارت LearnLinux در خروجی نمایش داده می شود.
[masih@mypc ~]$ echo LearnLinux
LearnLinux
نکته : دستور echo به تنهایی، سبب نمایش یک سطر بدون مقدار می شود.
& با استفاده روش بالا، کاراکترهای فاصله در عبارت بعد از echo، بدرستی نمایش داده نمی شوند. بطور مثال :
[masih@mypc ~]$ echo Learn Linux
Learn Linux
[masih@mypc ~]$ echo Learn Linux
Learn Linux
& برای نمایش دقیق یک عبارت در دستور echo ، از کاراکترهای Double Quote یا Single Quote استفاده می شود.
[masih@mypc ~]$ echo "Learn Linux" OR echo 'Learn Linux'
Learn Linux
* نمایش محتوای یک مکان
& با دستور زیر نام فایلها و دایرکتوری های مکان فعلی، بصورت پشت سرهم در خروجی قرار می گیرد.
[masih@mypc ~]$ echo *
Desktop Documents Downloads File1 file2 Music Pictures Templates Videos
& دستور زیر محتوای دایرکتوری sys/ را نمایش می دهد.
[masih@mypc ~]$ echo /sys/*
/sys/block /sys/bus /sys/class /sys/dev /sys/devices /sys/firmware /sys/fs /sys/hypervisor /sys/kernel /sys/module /sys/power
& برای نمایش فایل های مسیر etc/systemd/ که دارای پسوند conf هستند، می توان بصورت زیر عمل نمود.
[masih@mypc ~]$ echo /etc/systemd/*.conf
/etc/systemd/coredump.conf /etc/systemd/journald.conf /etc/systemd/logind.conf /etc/systemd/resolved.conf /etc/systemd/system.conf /etc/systemd/timesyncd.conf /etc/systemd/user.conf
* تغییر مسیر خروجی و درج در فایل
همواره می توان توسط کاراکترهای < و << مسیر خروجی استاندارد را تغییر داد.
& با دستور زیر ، عبارت LearnLinux در داخل فایل test1 درج می شود. اگر فایل test1 از قبل وجود نداشته باشد، یک فایل با نام test1 ایجاد شده و عبارت LearnLinux در آن قرار می گیرد. چنانچه فایل test1 از قبل وجود داشته باشد، عبارت LearnLinux جایگزین محتویات ان می شود.
[masih@mypc ~]$ echo "LearnLinux" > test1
[masih@mypc ~]$ cat test1
LearnLinux
& با استفاده از کاراکتر << می توان عبارت مورد نظر را به انتهای یک فایل اضافه نمود.
[masih@mypc ~]$ cat test1
LearnLinux
[masih@mypc ~]$ echo "2019" >> test1
[masih@mypc ~]$ cat test1
LearnLinux
2019
* سوئیچ n
& با استفاده از این سوئیچ ، در نمایش خروجی دستور echo ، خط جدید ایجاد نمی شود.
[masih@mypc ~]$ echo -n "LearnLinux"
LearnLinux[masih@mypc ~]$
* سوئیچ e
توسط این سوئیچ در دستور echo ، می توان از کاراکترهای خاصی که در ادامه معرفی می شوند، استفاده کرد. برای استفاده از این سوئیچ ، عبارت در داخل کاراکترهای Double Quote یا Single Quote قرار می گیرد.
n\ : استفاده از این کاراکتر، سبب ایجاد خط جدید در خروجی می شود.
& در دستورات زیر، نقش سوئیچ e و کاراکتر n\ را می بینید.
[masih@mypc ~]$ echo "Learn\nLinux"
Learn\nLinux
[masih@mypc ~]$ echo -e "Learn\nLinux"
Learn
Linux
c\ : با استفاده از این کاراکتر، تمامی خروجی های بعدی دستور echo بی تاثیر می شوند.
[masih@mypc ~]$ echo -e "Learn\cLinux"
Learn[masih@mypc ~]$
r\ : قسمتی از عبارت، که بعد از این کاراکتر قرار دارد، در خروجی نمایش داده می شود.
[masih@mypc ~]$ echo -e "Learn\rLinux"
Linux
t\ : استفاده از این کاراکتر، سبب ایجاد یک فاصله ی tab در خروجی می شود.
[masih@mypc ~]$ echo -e "Learn\tLinux"
Learn Linux
v\ : استفاده از این کاراکتر، سبب ایجاد یک فاصله ی tab عمودی در خروجی می شود.
[masih@mypc ~]$ echo -e "Learn\vLinux"
Learn
Linux
* تغییر حالت و رنگ خروجی دستور echo
برای تنظیم رنگ و حالت خروجی، میتوان از دو سطر زیر بترتیب برای ابتدا و انتهای یک عبارت استفاده کرد.
"\033[شماره رنگ یا حالتm
\033[0m"
در جدول زیر شماره های رنگ و انواع حالات متن خروجی، قابل مشاهده می باشد.
رنگ متن |
رنگ پس زمینه |
حالت متن |
30 = سیاه |
40 = سیاه |
0 = Normal |
31 = قرمز |
41 = قرمز |
1 = Bold |
32 = سبز |
42 = سبز |
2 = Italic |
33 = زرد |
43 = زرد |
3 = Dark |
34 = آبی |
44 = آبی |
4 = Underline |
35 = بنفش |
45 = بنفش |
|
36 = فیروزه ایی |
46 = فیروزه ایی |
|
37 = سفید |
47 = سفید |
|
& تغییر حالت متن بصورت Italic ، با دستور زیر قابل انجام است.
[masih@mypc ~]$ echo -e "\033[3mLearnLinux\033[0m"
LearnLinux
& از دستور زیر میتوان برای تغییر حالت متن بصورت Underline,Bold استفاده کرد.
[masih@mypc ~]$ echo -e "\033[1;4mLearnLinux\033[0m"
LearnLinux
& با دستور زیر، رنگ متن خروجی به قرمز تغییر می کند.
[masih@mypc ~]$ echo -e "\033[31mLearnLinux\033[0m"
LearnLinux
& تغییر رنگ پس زمینه خروجی به آبی، با دستور زیر انجام پذیر می باشد.
[masih@mypc ~]$ echo -e "\033[44mLearnLinux\033[0m"
LearnLinux
& با دستور زیر، خروجی با رنگ متن سفید، در پس زمینه قرمز بصورت Bold نمایش داده می شود.
[masih@mypc ~]$ echo -e "\033[1;37;42mLearnLinux\033[0m"
LearnLinux
* نمایش مقدار متغیرهای سیستم
& با دستورات زیر، متغیر linux بصورت موقت تعریف شده و مقدار آن نمایش داده می شود.
[masih@mypc ~]$ linux=12345
[masih@mypc ~]$ echo $linux
12345
& مقدار متغیر SHELL ، با دستور زیر قابل مشاهده می باشد. (متغیر SHELL نوع رابط متنی سیستم را مشخص می کند)
[masih@mypc ~]$ echo $SHELL
/bin/bash
& برای نمایش یک عبارت به همراه مقدار متغیر USER ، بصورت زیر عمل می شود.
[masih@mypc ~]$ echo "The User Is : $USER"
The User Is : masih
* ترکیب خروجی اجرای یک دستور با عبارت دلخواه
& در خروجی دستور زیر، عبارت : The Date Is به همراه نتیجه اجرای دستور date قرار می گیرد.
[masih@mypc ~]$ echo "The Date Is : $(date)"
The Date Is : Thu Jun 27 09:49:13 +0430 2019
* استفاده از دستور echo در اسکریپت نویسی
& در مثال زیر از دستور echo برای نمایش زمان و تاریخ سیستم در قالب یک Script استفاده شده است.
[masih@mypc ~]$ vi date_time.sh
Year=`date +%Y`
Month=`date +%m`
Day=`date +%d`
Hour=`date +%H`
Minute=`date +%M`
Second=`date +%S`
echo "Current Date is: $Day-$Month-$Year"
echo "Current Time is: $Hour:$Minute:$Second"
[masih@mypc ~]$ chmod +x date_time.sh
[masih@mypc ~]$ ./date_time.sh
Current Date is: 27-06-2019
Current Time is: 11:12:19