وبلاگ رسانگار
با ما حرفه ای باشید

سرور مجازی NVMe

خروجی فرمان BASH به متغیر

0 3
زمان لازم برای مطالعه: 2 دقیقه


انواع مختلف bash دستورات باید از terminal مستقر روی نیازهای کاربر هنگامی که کاربر هر دستوری را از terminal سپس اگر خطایی وجود نداشته باشد خروجی را نشان می دهد در غیر این صورت پیام خطا را نشان می دهد. گاهی اوقات، خروجی دستور باید در یک متغیر برای استفاده در آینده ذخیره شود. ویژگی جایگزینی دستور شل از bash می توان برای این منظور استفاده کرد. چگونه می توانید انواع مختلف دستورات پوسته را با استفاده از این ویژگی در متغیر ذخیره کنید، در این آموزش نشان داده شده است.

نحو جایگزینی دستور:

متغیر=$(فرمان)
متغیر=$(فرمان [option…] استدلال 1 آرگومان 2 …)
متغیر=$(/مسیر/به/فرمان)

یا

متغیر=`فرمان`
متغیر=`فرمان [option…] استدلال 1 آرگومان 2 …`
متغیر=`/مسیر/به/فرمان`

***نکته: هنگام استفاده از دستورات بالا از علامت مساوی و فاصله قبل و بعد استفاده نکنید.

خروجی یک فرمان به یک متغیر

دستورات Bash را می توان بدون هیچ گزینه و استدلالی برای دستوراتی که این قسمت ها اختیاری هستند استفاده کرد. دو مثال زیر کاربردهای جایگزینی دستور ساده را نشان می دهد.

مثال شماره 1:

bash `تاریخ` از دستور برای نمایش تاریخ و زمان فعلی استفاده می شود. اسکریپت زیر خروجی ` را ذخیره می کندتاریخ` دستور به $تاریخ فعلی متغیر با استفاده از جایگزینی دستور.

$ تاریخ فعلی=$(تاریخ)

$ echo “امروز است $current_date

خروجی:

خروجی فرمان BASH به متغیر

مثال شماره 2:

“pwd”. دستور مسیر دایرکتوری کاری فعلی را نشان می دهد. اسکریپت زیر خروجی را ذخیره می کند “pwd”. دستور به متغیر، $current_dir و مقدار این متغیر با استفاده چاپ می شود `echo` فرمان

$ current_dir=`pwd`

$ echo “دایرکتوری فعلی این است: $current_dir

خروجی:

خروجی فرمان BASH به متغیرخروجی فرمان BASH به متغیر

دستور با گزینه و آرگومان

خیار و برهان برای برخی اجباری است bash دستورات مثال‌های زیر نشان می‌دهند که چگونه می‌توانید خروجی فرمان را با گزینه و آرگومان در یک متغیر ذخیره کنید.

مثال شماره 3:

بش `wc` دستور برای شمارش تعداد کل خطوط، کلمات و کاراکترهای هر فایل استفاده می شود. این دستور از -c، -w و -l به عنوان گزینه و نام فایل به عنوان آرگومان برای تولید خروجی استفاده می کند. یک فایل متنی با نام ایجاد کنید fruits.txt با داده های زیر برای تست اسکریپت بعدی.
fruits.txt

انبه
نارنجی
موز
انگور
گواوا
سیب

دستورات زیر را اجرا کنید تا تعداد کل کلمات را بشمارید و ذخیره کنید fruits.txt فایل در یک متغیر، $count_words و print مقدار با استفاده از `echo` فرمان

$ count_words=`دستشویی -w fruits.txt`

پیشنهاد می‌کنیم بخوانید:  تفاوت بین Printf و Echo در Bash چیست؟

$ echo “کل کلمات در fruits.txt است $count_words

خروجی:

خروجی فرمان BASH به متغیرخروجی فرمان BASH به متغیر

مثال شماره 4:

“برش”. دیگری است bash دستوری که از گزینه و آرگومان برای تولید خروجی استفاده می کند. یک فایل متنی با نام ایجاد کنید weekday.txt با نام های هفت روزه برای اجرای اسکریپت بعدی.

weekday.txt

دوشنبه
سهشنبه
چهار شنبه
پنج شنبه
جمعه
شنبه
یکشنبه

ایجاد یک bash فایل به نام cmdsub1.sh با اسکریپت زیر در این فیلمنامه، در حالی که حلقه برای خواندن مطالب استفاده می شود weekday.txt فایل خط به خط و خواندن سه کاراکتر اول هر خط با استفاده از `برش` فرمان پس از برش، مقدار رشته در متغیر ذخیره می شود $ روز. سپس، اگر از عبارت برای بررسی مقدار استفاده شود $ روز است ‘آفتاب’ یا نه. خروجی خواهد شد print ‘یکشنبه تعطیل استزمانی که اگر شرط درست باشد در غیر این صورت خواهد بود print ارزش $ روز.

cmdsub1.sh

#!/صندوقچه/bash
نام فایل=‘weekday.txt’
در حالی که خواندن خط انجام دادن
روز=`echo خط $ | برش 13`
اگر [ $day == “Sun” ]
سپس
echo “یکشنبه تعطیلات است”
دیگر
echo $ روز
فی
انجام شده<$filename

اسکریپت را اجرا کنید.

$ گربه weekday.txt
$ bash cmdsub1.sh

خروجی:

خروجی فرمان BASH به متغیرخروجی فرمان BASH به متغیر

استفاده از جایگزینی دستور در حلقه

می توانید خروجی تعویض دستور را در هر متغیر حلقه ای که در مثال بعدی نشان داده شده است ذخیره کنید.

مثال شماره 5:

یک فایل به نام ایجاد کنید cmdsub2.sh با کد زیر اینجا، `ls -d */دستور ` برای بازیابی همه فهرست دایرکتوری از دایرکتوری فعلی استفاده می شود. حلقه for در اینجا برای خواندن هر دایرکتوری از خروجی و ذخیره آن در متغیر استفاده می شود $dirname که بعدا چاپ میشه

cmdsub2.sh

#!/صندوقچه/bash
برای dirname که در $(ls */)
انجام دادن
echo $dirname
انجام شده

اسکریپت را اجرا کنید.

$ bash cmdsub2.sh

خروجی:

خروجی فرمان BASH به متغیرخروجی فرمان BASH به متغیر

استفاده از دستورات تو در تو

روش استفاده از دستورات متعدد با استفاده از pipe(|) در مثال قبلی نشان داده شده است. اما می توانید از دستورات تو در تو در جانشینی دستور استفاده کنید که خروجی دستور اول بستگی دارد روی خروجی فرمان دوم است و برخلاف دستور pipe(|) عمل می کند.

پیشنهاد می‌کنیم بخوانید:  چگونه به 2 مکان اعشاری در Bash گرد کنیم

نحو دستور تو در تو:

var=`فرمان 1 \`فرمان\

مثال شماره 6:

دو دستور، `echo`و`سازمان بهداشت جهانی` در این مثال به عنوان دستور تودرتو استفاده می شود. اینجا، `سازمان بهداشت جهانیاین دستور ابتدا اجرا می شود print اطلاعات کاربر از کاربر وارد شده در حال حاضر. خروجی از `سازمان بهداشت جهانیدستور توسط ` اجرا می شودecho` فرمان و خروجی`echo` در متغیر ذخیره می شود $var. در اینجا، خروجی «echoفرمان بستگی دارد روی خروجی از `سازمان بهداشت جهانیدستور.

$ var=`echo \`سازمان بهداشت جهانی\

$ echo $var

خروجی:

خروجی فرمان BASH به متغیرخروجی فرمان BASH به متغیر

با استفاده از مسیر فرمان

اگر مسیر دستور را می‌دانید، می‌توانید با تعیین مسیر فرمان هنگام استفاده از جایگزینی دستور، دستور را اجرا کنید. مثال زیر استفاده از مسیر فرمان را نشان می دهد.

مثال شماره 7:

“ووامی”. دستور نام کاربری کاربر وارد شده فعلی را نشان می دهد. به طور پیش فرض، این دستور در ذخیره می شود /usr/صندوقچه/ پوشه اسکریپت زیر را برای اجرا اجرا کنیدهوامی دستور با استفاده از مسیر و ذخیره در متغیر، خروجی $، و print ارزش خروجی $.

$ خروجی=$(/usr/صندوقچه/من کی هستم)

$ echo خروجی $

خروجی:

خروجی فرمان BASH به متغیرخروجی فرمان BASH به متغیر

با استفاده از آرگومان خط فرمان

می توانید از آرگومان خط فرمان با دستور به عنوان آرگومان در جایگزینی دستور استفاده کنید.

مثال شماره 8:

ایجاد یک bash فایل به نام cmdsub3.sh با اسکریپت زیر `نام پایهدستور ` در اینجا برای بازیابی نام فایل از 2 استفاده می شودnd آرگومان خط فرمان و ذخیره شده در متغیر، $filename. ما 1 را می شناسیمخیابان آرگومان خط فرمان نام اسکریپت در حال اجرا است که با $0 نشان داده می شود.

#!/صندوقچه/bash
نام فایل=`نام پایه 1 دلار`
echo “نام فایل است $filename

اسکریپت را با مقدار آرگومان زیر اجرا کنید.

$ bash cmdsub3.sh دسکتاپ/دما/hello.txt

اینجا، نام پایه از مسیر، Desktop/temp/hello.txt است ‘hello.txt‘. بنابراین، ارزش $filename خواهد بود hello.txt.

خروجی:

خروجی فرمان BASH به متغیرخروجی فرمان BASH به متغیر

نتیجه:

کاربردهای مختلفی از جایگزینی دستورات در این آموزش نشان داده شده است. اگر باید با چندین دستور یا دستورات وابسته کار کنید و نتیجه را به طور موقت ذخیره کنید تا بعداً کارهای دیگری انجام دهید، می توانید از این ویژگی در اسکریپت خود برای دریافت خروجی استفاده کنید.

اطلاعات بیشتر در ویدیو:

https://www.youtube.com/watch؟v=A6F3gmQx610

برای نگارش بخشهایی از این متن ممکن است از ترجمه ماشینی یا هوش مصنوعی GPT استفاده شده باشد
لطفا در صورت وجود مشکل در متن یا مفهوم نبودن توضیحات، از طریق دکمه گزارش نوشتار یا درج نظر روی این مطلب ما را از جزییات مشکل مشاهده شده مطلع کنید تا به آن رسیدگی کنیم

زمان انتشار: 1403-01-01 00:46:04

امتیاز شما به این مطلب
دیدگاه شما در خصوص مطلب چیست ؟

آدرس ایمیل شما منتشر نخواهد شد.

لطفا دیدگاه خود را با احترام به دیدگاه های دیگران و با توجه به محتوای مطلب درج کنید