چگونه خروجی فرمان را به عنوان متغیر در Bash ذخیره کنیم؟ هوش داده PlatoBlockchain. جستجوی عمودی Ai.

چگونه خروجی فرمان را به عنوان متغیر در Bash ذخیره کنیم؟

معرفی

در اسکریپت های bash، تخصیص خروجی یک دستور به متغیرها می تواند با ذخیره کردن خروجی دستورات و استفاده از آنها بعداً راحت باشد.

در این راهنمای کوتاه، نگاهی خواهیم داشت به اینکه چگونه می توانید خروجی یک دستور را به عنوان یک متغیر در Bash ذخیره کنید.

اصول اولیه برای تنظیم متغیرها

ذخیره خروجی یک فرمان به عنوان یک متغیر از طریق انجام می شود تعویض فرمان. جانشینی دستور یک wrapper است که دستور را در a اجرا می کند محیط زیر پوسته، و دستور wrapped را با خروجی استاندارد محیطی که دستور در آن اجرا شده است جایگزین می کند. این خروجی می تواند بعداً ارجاع داده شود، اگر به یک متغیر مرجع متصل شود!

جایگزینی دستور را می توان از طریق بکتیک یا علامت دلار با پرانتز به دست آورد:

`command`

$(command)

بحث در مورد اینکه آیا وجود دارد "فرمان". (بکتیک) یا $(فرمان) (علامت دلار و پرانتز) باید به عنوان "بهترین عمل" استفاده شود. $(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 را با بهترین روش ها، استانداردهای پذیرفته شده در صنعت و برگه تقلب شامل بررسی کنید. دستورات Google Git را متوقف کنید و در واقع یاد گرفتن آی تی!

در آخر الف را اضافه می کنیم multiline مفهوم انتساب متغیر فرمان با اضافه کردن یک اسلش () بین ls فرمان -l پرچم برای نمایش فقط فایل های متنی با استفاده از *.txt. بک اسلش یک کاراکتر فرار است که به پوسته اطلاع می دهد که شخصیت بعدی را تفسیر نکند.

در echo دستور را اضافه کردیم -e برای استفاده از کاراکتر ویژه پرچم گذاری کنید، به عنوان مثال، n (خط جدید)، برای چاپ خروجی در خط جدید.

پس از اجرای اسکریپت به نتیجه زیر می رسیم:

$ ./variable.sh

نتیجه

در این راهنمای کوتاه، نگاهی به نحوه تنظیم خروجی یک فرمان بر روی یک متغیر در Bash انداخته ایم. ما نگاهی به تفاوت بین syntaxes برای تعویض فرمان، با اشاره به بهبود خوانایی از $(command) بیش از جایگزینی مبتنی بر بکتیک سپس، نگاهی به چندین نمونه از تخصیص ساده و تخصیص خروجی زنجیره ای/تودرتو انداخته ایم.

تمبر زمان:

بیشتر از Stackabuse