از طریق منوی جستجو مطلب مورد نظر خود در وبلاگ را به سرعت پیدا کنید
خروجی فرمان BASH به متغیر
سرفصلهای مطلب
انواع مختلف bash دستورات باید از terminal مستقر روی نیازهای کاربر هنگامی که کاربر هر دستوری را از terminal سپس اگر خطایی وجود نداشته باشد خروجی را نشان می دهد در غیر این صورت پیام خطا را نشان می دهد. گاهی اوقات، خروجی دستور باید در یک متغیر برای استفاده در آینده ذخیره شود. ویژگی جایگزینی دستور شل از bash می توان برای این منظور استفاده کرد. چگونه می توانید انواع مختلف دستورات پوسته را با استفاده از این ویژگی در متغیر ذخیره کنید، در این آموزش نشان داده شده است.
نحو جایگزینی دستور:
متغیر=$(فرمان [option…] استدلال 1 آرگومان 2 …)
متغیر=$(/مسیر/به/فرمان)
یا
متغیر=`فرمان [option…] استدلال 1 آرگومان 2 …`
متغیر=`/مسیر/به/فرمان`
***نکته: هنگام استفاده از دستورات بالا از علامت مساوی و فاصله قبل و بعد استفاده نکنید.
خروجی یک فرمان به یک متغیر
دستورات Bash را می توان بدون هیچ گزینه و استدلالی برای دستوراتی که این قسمت ها اختیاری هستند استفاده کرد. دو مثال زیر کاربردهای جایگزینی دستور ساده را نشان می دهد.
مثال شماره 1:
bash `تاریخ` از دستور برای نمایش تاریخ و زمان فعلی استفاده می شود. اسکریپت زیر خروجی ` را ذخیره می کندتاریخ` دستور به $تاریخ فعلی متغیر با استفاده از جایگزینی دستور.
$ echo “امروز است $current_date“
خروجی:
مثال شماره 2:
“pwd”. دستور مسیر دایرکتوری کاری فعلی را نشان می دهد. اسکریپت زیر خروجی را ذخیره می کند “pwd”. دستور به متغیر، $current_dir و مقدار این متغیر با استفاده چاپ می شود `echo` فرمان
$ echo “دایرکتوری فعلی این است: $current_dir“
خروجی:
دستور با گزینه و آرگومان
خیار و برهان برای برخی اجباری است bash دستورات مثالهای زیر نشان میدهند که چگونه میتوانید خروجی فرمان را با گزینه و آرگومان در یک متغیر ذخیره کنید.
مثال شماره 3:
بش `wc` دستور برای شمارش تعداد کل خطوط، کلمات و کاراکترهای هر فایل استفاده می شود. این دستور از -c، -w و -l به عنوان گزینه و نام فایل به عنوان آرگومان برای تولید خروجی استفاده می کند. یک فایل متنی با نام ایجاد کنید fruits.txt با داده های زیر برای تست اسکریپت بعدی.
fruits.txt
نارنجی
موز
انگور
گواوا
سیب
دستورات زیر را اجرا کنید تا تعداد کل کلمات را بشمارید و ذخیره کنید fruits.txt فایل در یک متغیر، $count_words و print مقدار با استفاده از `echo` فرمان
$ echo “کل کلمات در fruits.txt است $count_words“
خروجی:
مثال شماره 4:
“برش”. دیگری است bash دستوری که از گزینه و آرگومان برای تولید خروجی استفاده می کند. یک فایل متنی با نام ایجاد کنید weekday.txt با نام های هفت روزه برای اجرای اسکریپت بعدی.
weekday.txt
سهشنبه
چهار شنبه
پنج شنبه
جمعه
شنبه
یکشنبه
ایجاد یک bash فایل به نام cmdsub1.sh با اسکریپت زیر در این فیلمنامه، در حالی که حلقه برای خواندن مطالب استفاده می شود weekday.txt فایل خط به خط و خواندن سه کاراکتر اول هر خط با استفاده از `برش` فرمان پس از برش، مقدار رشته در متغیر ذخیره می شود $ روز. سپس، اگر از عبارت برای بررسی مقدار استفاده شود $ روز است ‘آفتاب’ یا نه. خروجی خواهد شد print ‘یکشنبه تعطیل استزمانی که اگر شرط درست باشد در غیر این صورت خواهد بود print ارزش $ روز.
cmdsub1.sh
نام فایل=‘weekday.txt’
در حالی که خواندن خط انجام دادن
روز=`echo خط $ | برش -ج 1–3`
اگر [ $day == “Sun” ]
سپس
echo “یکشنبه تعطیلات است”
دیگر
echo $ روز
فی
انجام شده<$filename
اسکریپت را اجرا کنید.
$ bash cmdsub1.sh
خروجی:
استفاده از جایگزینی دستور در حلقه
می توانید خروجی تعویض دستور را در هر متغیر حلقه ای که در مثال بعدی نشان داده شده است ذخیره کنید.
مثال شماره 5:
یک فایل به نام ایجاد کنید cmdsub2.sh با کد زیر اینجا، `ls -d */دستور ` برای بازیابی همه فهرست دایرکتوری از دایرکتوری فعلی استفاده می شود. حلقه for در اینجا برای خواندن هر دایرکتوری از خروجی و ذخیره آن در متغیر استفاده می شود $dirname که بعدا چاپ میشه
cmdsub2.sh
برای dirname که در $(ls -د */)
انجام دادن
echo “$dirname“
انجام شده
اسکریپت را اجرا کنید.
خروجی:
استفاده از دستورات تو در تو
روش استفاده از دستورات متعدد با استفاده از pipe(|) در مثال قبلی نشان داده شده است. اما می توانید از دستورات تو در تو در جانشینی دستور استفاده کنید که خروجی دستور اول بستگی دارد روی خروجی فرمان دوم است و برخلاف دستور pipe(|) عمل می کند.
نحو دستور تو در تو:
مثال شماره 6:
دو دستور، `echo`و`سازمان بهداشت جهانی` در این مثال به عنوان دستور تودرتو استفاده می شود. اینجا، `سازمان بهداشت جهانیاین دستور ابتدا اجرا می شود print اطلاعات کاربر از کاربر وارد شده در حال حاضر. خروجی از `سازمان بهداشت جهانیدستور توسط ` اجرا می شودecho` فرمان و خروجی`echo` در متغیر ذخیره می شود $var. در اینجا، خروجی «echoفرمان بستگی دارد روی خروجی از `سازمان بهداشت جهانیدستور.
$ echo $var
خروجی:
با استفاده از مسیر فرمان
اگر مسیر دستور را میدانید، میتوانید با تعیین مسیر فرمان هنگام استفاده از جایگزینی دستور، دستور را اجرا کنید. مثال زیر استفاده از مسیر فرمان را نشان می دهد.
مثال شماره 7:
“ووامی”. دستور نام کاربری کاربر وارد شده فعلی را نشان می دهد. به طور پیش فرض، این دستور در ذخیره می شود /usr/صندوقچه/ پوشه اسکریپت زیر را برای اجرا اجرا کنیدهوامی دستور با استفاده از مسیر و ذخیره در متغیر، خروجی $، و print ارزش خروجی $.
$ echo خروجی $
خروجی:
با استفاده از آرگومان خط فرمان
می توانید از آرگومان خط فرمان با دستور به عنوان آرگومان در جایگزینی دستور استفاده کنید.
مثال شماره 8:
ایجاد یک bash فایل به نام cmdsub3.sh با اسکریپت زیر `نام پایهدستور ` در اینجا برای بازیابی نام فایل از 2 استفاده می شودnd آرگومان خط فرمان و ذخیره شده در متغیر، $filename. ما 1 را می شناسیمخیابان آرگومان خط فرمان نام اسکریپت در حال اجرا است که با $0 نشان داده می شود.
نام فایل=`نام پایه 1 دلار`
echo “نام فایل است $filename“
اسکریپت را با مقدار آرگومان زیر اجرا کنید.
اینجا، نام پایه از مسیر، Desktop/temp/hello.txt است ‘hello.txt‘. بنابراین، ارزش $filename خواهد بود hello.txt.
خروجی:
نتیجه:
کاربردهای مختلفی از جایگزینی دستورات در این آموزش نشان داده شده است. اگر باید با چندین دستور یا دستورات وابسته کار کنید و نتیجه را به طور موقت ذخیره کنید تا بعداً کارهای دیگری انجام دهید، می توانید از این ویژگی در اسکریپت خود برای دریافت خروجی استفاده کنید.
اطلاعات بیشتر در ویدیو:
لطفا در صورت وجود مشکل در متن یا مفهوم نبودن توضیحات، از طریق دکمه گزارش نوشتار یا درج نظر روی این مطلب ما را از جزییات مشکل مشاهده شده مطلع کنید تا به آن رسیدگی کنیم
زمان انتشار: 1403-01-01 00:46:04