كيف تحفظ إخراج الأمر كمتغير في Bash؟ ذكاء بيانات PlatoBlockchain. البحث العمودي. عاي.

كيف تحفظ إخراج الأمر كمتغير في Bash؟

المُقدّمة

في نصوص bash النصية ، يمكن أن يكون تخصيص إخراج أمر ما للمتغيرات أمرًا ملائمًا من خلال تخزين مخرجات الأوامر واستخدامها لاحقًا.

في هذا الدليل المختصر ، سنلقي نظرة على كيفية تخزين إخراج الأمر كمتغير في Bash.

أساسيات إعداد المتغيرات

يتم حفظ ناتج الأمر كمتغير من خلال استبدال الأمر. استبدال الأوامر هو غلاف ينفذ الأمر في ملف بيئة تحت القشرة، ويستبدل الأمر المغلف بالإخراج القياسي للبيئة التي تم تشغيل الأمر فيها. يمكن بعد ذلك الرجوع إلى هذا الناتج لاحقًا ، إذا كان متصلاً بمتغير مرجعي!

يمكن تحقيق استبدال الأوامر من خلال backticks أو علامة الدولار بأقواس:

`command`

$(command)

هناك جدل حول ما إذا كان "أمر" (backticks) أو $ (أمر) (علامة الدولار والأقواس) يجب أن تستخدم على أنها "أفضل ممارسة". $(command) يعمل بشكل جيد في التداخل ، ويحسن إمكانية القراءة في بعض الحالات ، ولكن يمكنك استخدام أيٍ من البنية في أمثلة المتابعة.

ومع ذلك ، فإن تعيين إخراج أمر ما إلى متغير في Bash أمر سهل مثل:

VARIABLE=$(command)
echo "${VARIABLE}"

الركض ${variable} كما هو معروف توسيع المعلمة، ويستخدم لتقييم وجلب القيمة المرتبطة بمتغير مرجعي.

دعنا الآن نلقي نظرة على المثال البسيط لإعداد متغير لأمر لتغيير لون الإخراج:

#!/bin/bash
GREEN=$(tput setaf 2)
echo "${GREEN}Please"

ORANGE=$(tput setaf 9)
echo "${ORANGE}Visit"

echo "${GREEN}Paris"

في المقتطف ، استخدمنا الامتداد tput الأمر وتعيين القيمة المرجعة لتلك الأوامر لطباعة نص ملون. ال setaf يغير لون المقدمة ، و 3 (أخضر) و 9 (برتقالي) رموز لونية.

سننتقل الآن إلى مثال آخر يحتوي على شروط متعددة لإعداد متغيرات لأوامر مختلفة:

#!/bin/bash
PERSON=$(whoami)
echo -e "Hey ${PERSON}! I am Charlien"

DETAILS=$(uname -a)
echo -e "You're running this script on:n${DETAILS}n"

DATES=$(date)
echo -e "The script is being run on:n${DATES}n"

CREATE=$(touch $(date +"%d%m%Y").txt)
echo -e "A text file logging this run is created.${CREATE}n"

LOCATION=$(ls 
  -l *txt)
echo -e "Saved text file at: ${LOCATION}"

في النص أعلاه ، ملف whoami يقوم الأمر بإرجاع اسم المستخدم الحالي للمستخدم. ال uname -a إرجاع معلومات النظام ، و date إرجاع الوقت والتاريخ الحاليين.

ملحوظة: يمكننا ربط التخصيصات المتغيرة عن طريق إضافة أوامر متعددة في مكالمة واحدة متداخلة. ال CREATE متغير يحتوي على إخراج touch الأمر ، والذي بدوره ينشئ ملفًا ويضبط اسم الملف على إخراج ملف date +"%d%m%Y أمر.

تحقق من دليلنا العملي العملي لتعلم Git ، مع أفضل الممارسات ، والمعايير المقبولة في الصناعة ، وورقة الغش المضمنة. توقف عن أوامر Googling Git وفي الواقع تعلم ذلك!

أخيرًا ، نضيف ملف multiline مفهوم التخصيص المتغير للأوامر عن طريق إضافة شرطة مائلة للخلف () بين ls أمر -l علم لعرض الملفات النصية فقط باستخدام *.txt. الشرطة المائلة للخلف هي حرف هروب يخبر الغلاف بعدم تفسير الحرف التالي.

في مجلة echo الأمر ، أضفنا -e علم لاستخدام الحرف الخاص ، على سبيل المثال ، n (سطر جديد) ، لطباعة الإخراج في السطر الجديد.

نحصل على النتيجة التالية بعد تنفيذ البرنامج النصي:

$ ./variable.sh

وفي الختام

في هذا الدليل المختصر ، ألقينا نظرة على كيفية ضبط إخراج أمر ما على متغير في Bash. لقد ألقينا نظرة على الاختلاف بين الجمل النحوية لـ استبدال الأمر، مع الإشارة إلى تحسينات قابلية القراءة لـ $(command) على الاستبدال القائم على backtick. بعد ذلك ، ألقينا نظرة على العديد من الأمثلة لكل من المهمة البسيطة وتعيين الإخراج المتسلسل / المتداخل.

الطابع الزمني:

اكثر من ستاكابوز