إخراج الأمر BASH إلى المتغير

Bash Command Output Variable



يجب تشغيل أنواع مختلفة من أوامر bash من المحطة بناءً على متطلبات المستخدم. عندما يقوم المستخدم بتشغيل أي أمر من المحطة ، فإنه يظهر الإخراج في حالة عدم وجود خطأ وإلا فإنه يعرض رسالة الخطأ. في بعض الأحيان ، يجب تخزين إخراج الأمر في متغير لاستخدامه في المستقبل. يمكن استخدام ميزة استبدال أوامر Shell في bash لهذا الغرض. كيف يمكنك تخزين أنواع مختلفة من أوامر الصدف في المتغير باستخدام هذه الميزة موضحة في هذا البرنامج التعليمي.

عامل= دولار(أمر)
عامل= دولار(أمر [اختيار…]الوسيطات 1 ...)
عامل= دولار(/طريق/إلى/أمر)

أو







عامل='أمر'
عامل='أمر [اختيار…]الوسيطات 1 ...'
عامل=`/طريق/إلى/أمر'

*** ملاحظة: لا تستخدم أي مسافة قبل وبعد علامة التساوي عند استخدام الأوامر أعلاه.



إخراج أمر واحد إلى متغير

يمكن استخدام أوامر Bash بدون أي خيار أو وسيطة لتلك الأوامر التي تكون فيها هذه الأجزاء اختيارية. يوضح المثالان التاليان استخدامات استبدال الأمر البسيط.



مثال 1:

باش '' التاريخ` يتم استخدام الأمر لإظهار التاريخ والوقت الحاليين. سيخزن البرنامج النصي التالي إخراج ملفات التاريخ` الأمر إلى $ التاريخ الحالي متغير باستخدام استبدال الأوامر.





$التاريخ الحالي= دولار(تاريخ)
$رما - طرد - قذف 'اليوم هو$ current_date'

انتاج:



المثال الثاني:

'pwd' يعرض الأمر مسار دليل العمل الحالي. يخزن البرنامج النصي التالي إخراج 'pwd' الأمر في المتغير ، $ current_dir ويتم طباعة قيمة هذا المتغير باستخدام 'صدى' أمر.

$الحالي_دير='pwd'
$رما - طرد - قذف الدليل الحالي هو:$ current_dir'

انتاج:

القيادة مع الخيار والحجة

يعتبر الخيار والوسيطة إلزاميًا لبعض أوامر bash. توضح الأمثلة التالية كيف يمكنك تخزين إخراج الأمر مع الخيار والوسيطة في متغير.

المثال الثالث:

باش '' مرحاض يتم استخدام الأمر لحساب العدد الإجمالي للأسطر والكلمات والأحرف لأي ملف. يستخدم هذا الأمر -c و -w و -l كخيار واسم الملف كوسيطة لتوليد الإخراج. قم بإنشاء ملف نصي باسم ثمار بالبيانات التالية لاختبار البرنامج النصي التالي.
ثمار

ثمار
مانجو
البرتقالي
موز
عنب
جوافة
تفاح

قم بتشغيل الأوامر التالية لحساب العدد الإجمالي للكلمات وتخزينه في ملف ثمار ملف في متغير ، $ count_words وطباعة القيمة باستخدام ` صدى أمر.

$عدد_كلمات='مرحاض -فيثمار'
$رما - طرد - قذف 'إجمالي الكلمات في ثمار. txt هو$ count_words'

انتاج:

المثال الرابع:

'قص' هو أمر bash آخر يستخدم الخيار والوسيطة لتوليد الإخراج. قم بإنشاء ملف نصي باسم من أيام الأسبوع. xt بأسماء سبعة أيام من الأسبوع لتشغيل البرنامج النصي التالي.

من أيام الأسبوع. xt

الإثنين
يوم الثلاثاء
الأربعاء
يوم الخميس
جمعة
السبت
يوم الأحد

قم بإنشاء ملف bash يسمى cmdsub1.sh بالنص التالي. في هذا السيناريو ، في حين حلقة تستخدم لقراءة محتوى من أيام الأسبوع. xt ملف سطرًا بسطر وقراءة الأحرف الثلاثة الأولى من كل سطر باستخدام ` قطع أمر. بعد القطع ، يتم تخزين قيمة السلسلة في المتغير يوم $ . بعد ذلك ، إذا تم استخدام العبارة للتحقق من قيمة يوم $ يكون ' الشمس' أم لا. سيطبع الإخراج الأحد هو يوم العطلة 'عندما يكون الشرط صحيحًا وإلا فسيتم طباعة قيمة يوم $ .

cmdsub1.sh

#!/bin/bash
اسم الملف='weekday.txt'
في حين اقرأخط؛فعل
يوم='رما - طرد - قذف سطر $ | يقطع 1-3'
لو [ يوم $=='الشمس' ]
من ثم
رما - طرد - قذف 'الأحد هو العطلة'
آخر
رما - طرد - قذف يوم $
يكون
انتهى<اسم الملف $

قم بتشغيل البرنامج النصي.

$قطمن أيام الأسبوع. xt
$سحقcmdsub1.sh

انتاج:

باستخدام استبدال الأوامر في الحلقة

يمكنك تخزين ناتج استبدال الأمر في أي متغير حلقة يظهر في المثال التالي.

المثال الخامس:

قم بإنشاء ملف باسم cmdsub2.sh مع الكود التالي. هنا ، ls -d * / `يتم استخدام الأمر لاسترداد كل قائمة الدليل من الدليل الحالي. تستخدم حلقة For هنا لقراءة كل دليل من الإخراج وتخزينه في المتغير dirname $ الذي تم طباعته لاحقًا.

cmdsub2.sh

#!/bin/bash
ل اسم الدليل في$(ls * /)
فعل
رما - طرد - قذف 'dirname $'
انتهى

قم بتشغيل البرنامج النصي.

$سحقcmdsub2.sh

انتاج:

باستخدام الأوامر المتداخلة

كيف يمكنك استخدام أوامر متعددة باستخدام الأنبوب (|) موضح في المثال السابق. ولكن يمكنك استخدام الأوامر المتداخلة في استبدال الأوامر حيث يعتمد إخراج الأمر الأول على إخراج الأمر الثاني ويعمل عكس أمر التوجيه (|).

صيغة الأمر المتداخلة:

أين='أمر 1 'أمر'

المثال السادس:

أمرين ، رما - طرد - قذف 'و' من الذى `في هذا المثال كأمر متداخل. هنا ، من الذى `سينفذ الأمر أولاً لطباعة معلومات المستخدم الخاصة بالمستخدم المسجل حاليًا. ناتج ملف من الذى سيتم تنفيذ الأمر بواسطة `` رما - طرد - قذف 'الأمر وإخراج' رما - طرد - قذف سيتم تخزينه في المتغير فار دولار . هنا ، ناتج ملفات رما - طرد - قذف الأمر يعتمد على إخراج من الذى 'الأمر.

$أين='رما - طرد - قذف'من الذى'
$رما - طرد - قذف فار دولار

انتاج:

باستخدام مسار الأوامر

إذا كنت تعرف مسار الأمر ، فيمكنك تشغيل الأمر عن طريق تحديد مسار الأمر عند استخدام استبدال الأوامر. يوضح المثال التالي استخدام مسار الأمر.

المثال السابع:

'whoami' يعرض الأمر اسم المستخدم للمستخدم الذي قام بتسجيل الدخول حاليًا. بشكل افتراضي ، يتم تخزين هذا الأمر في / usr / صباحا/ مجلد. قم بتشغيل البرنامج النصي التالي لتشغيل ملفات whoami` الأمر باستخدام المسار والتخزين في المتغير ، الإخراج دولار ، وطباعة قيمة الإخراج دولار .

$انتاج= دولار(/usr/صباحا/من أنا)
$رما - طرد - قذف الإخراج دولار

انتاج:

باستخدام وسيطة سطر الأوامر

يمكنك استخدام وسيطة سطر الأوامر مع الأمر كوسيطة في استبدال الأمر.

المثال الثامن:

قم بإنشاء ملف bash يسمى cmdsub3.sh بالنص التالي. ' الاسم الأساسي `يتم استخدام الأمر هنا لاسترداد اسم الملف من 2اختصار الثانيوسيطة سطر الأوامر وتخزينها في المتغير ، اسم الملف $ . نحن نعرف 1شارعوسيطة سطر الأوامر هي اسم البرنامج النصي المنفذ والذي يُرمز إليه بـ $ 0.

#!/bin/bash
اسم الملف='الاسم الأساسي 1 دولار'
رما - طرد - قذف اسم الملف هواسم الملف $'.

قم بتشغيل البرنامج النصي بقيمة الوسيطة التالية.

$سحقسطح المكتب cmdsub3.sh/مؤقت/hello.txt

هنا، الاسم الأساسي من الطريق ، سطح المكتب / temp / hello.txt يكون ' hello.txt '. لذا ، فإن قيمة اسم الملف $ سوف يكون hello.txt .

انتاج:

استنتاج:

يتم عرض الاستخدامات المختلفة لاستبدالات الأوامر في هذا البرنامج التعليمي. إذا كنت بحاجة إلى العمل بأوامر متعددة أو أوامر معتمدة وتخزين النتيجة المؤقتة للقيام ببعض المهام الأخرى لاحقًا ، فيمكنك استخدام هذه الميزة في البرنامج النصي الخاص بك للحصول على الإخراج.

مزيد من المعلومات في الفيديو: