وقتی که شما یک دستور را اجرا میکنید، یک نوعی از خروجی ایجاد میشود: چه خروجی یک برنامه باشه که در حال تولید شدن هست یا پیغام status/error یک برنامه درحال اجرا میتواند باشد. برخی اوقات شما ممکن است بخواید خروجی یک دستور را در یک variable (متغییر) برای یک عملیات خاصی که بعدا قرار هست انجام شود ذخیره کنید.
در این پست، ما قصد داریم راه های متفاوتی برای اختصاص دادن خروجی یک دستور shell به یک متغییر، خصوصا برای اهداف shell script، را به شما نشان بدهیم. برای ذخیره خروجی یک دستور در یک متغییر (variable)، شما میتوانید از قابلیت جایگزینی دستورات شل همانند زیر استفاده کنید :
در زیر تعداد کمی از مثالها که برای جایگزینی دستورات استفاده میشود را مشاهده میکنید.
در مثال اول، ما میخوایم مقدار "value" از دستور who (که کسانی که در سیستم لاگین هستند رابه ما نمایش میدهد) در متغییر CURRENT_USERS کاربر ذخیره کنیم.
سپس ما میتوانیم متغییر را در یک جمله استفاده کنیم و با استفاده از دستور echo آنرا نمایش بدیم. همانند زیر :
در دستور بالا : آپشن -e به معنی تفسیر کردن escape sequences (همانند /n برای خط جدید "newline") استفاده میشود. برای جلوگیری کردن از اتلاف زمان و حافظه، به سادگی دستور جایگزین را درون دستور echo قرار دهید.همانند زیر :
در مثال دوم، ما میتوانیم تعداد کل از فایل ها در دایرکتوری جاری در یک متغییری به نام FILES ذخیره کنیم و در ادامه آن را echo میکنیم :
همچنین توصیه میشود مطالعه کنید :
دستور awk در لینوکس جهت استفاده از عبارات خاص برای فیلتر کردن متن یا رشته های متنی در فایل ها
نحوه ذخیره کردن خروجی یک دستور در یک فایل
ما روش های اختصاص دادن خروجی را به یک متغییر توضیح دادیم. شما میتوانید نظرات و فید بک های خودتان را از طریق همین پست با ما درمیان بگذارید.
در این پست، ما قصد داریم راه های متفاوتی برای اختصاص دادن خروجی یک دستور shell به یک متغییر، خصوصا برای اهداف shell script، را به شما نشان بدهیم. برای ذخیره خروجی یک دستور در یک متغییر (variable)، شما میتوانید از قابلیت جایگزینی دستورات شل همانند زیر استفاده کنید :
کد PHP:
variable_name=$(command)
variable_name=$(command [option ...] arg1 arg2 ...)
OR
variable_name='command'
variable_name='command [option ...] arg1 arg2 ...'
در مثال اول، ما میخوایم مقدار "value" از دستور who (که کسانی که در سیستم لاگین هستند رابه ما نمایش میدهد) در متغییر CURRENT_USERS کاربر ذخیره کنیم.
کد PHP:
$ CURRENT_USERS=$(who)
کد PHP:
$ echo -e "The following users are logged on the system:\n\n $CURRENT_USERS"
کد PHP:
$ echo -e "The following users are logged on the system:\n\n $(who)"
کد PHP:
[root@linuxzone ~]# CURRENT_USERS=$(who)
[root@linuxzone ~]#
[root@linuxzone ~]#
[root@linuxzone ~]# echo -e "The following users are logged on the system:\n\n $CURRENT_USERS"
The following users are logged on the system:
habili tty8 2017-01-019 12:10 (:0)
[root@linuxzone ~]#
کد PHP:
$ FILES=`sudo find . -type f -print | wc -l`
$ echo "There are $FILES in the current working directory."
کد PHP:
[root@linuxzone ~]# FILES=`sudo find . -type f -print | wc -l`
[root@linuxzone ~]#
[root@linuxzone ~]# echo "There are $FILES in the current working directory."
There are 79997 in the current working directory
[root@linuxzone ~]#
همچنین توصیه میشود مطالعه کنید :
دستور awk در لینوکس جهت استفاده از عبارات خاص برای فیلتر کردن متن یا رشته های متنی در فایل ها
نحوه ذخیره کردن خروجی یک دستور در یک فایل
ما روش های اختصاص دادن خروجی را به یک متغییر توضیح دادیم. شما میتوانید نظرات و فید بک های خودتان را از طریق همین پست با ما درمیان بگذارید.