כיצד לשמור פלט פקודה כמשתנה ב-Bash? PlatoBlockchain Data Intelligence. חיפוש אנכי. איי.

כיצד לשמור פלט פקודה כמשתנה ב-Bash?

מבוא

בתסריטי bash, הקצאת פלט של פקודה למשתנים יכולה להיות נוחה על ידי אחסון הפלטים של הפקודות ושימוש בהם מאוחר יותר.

במדריך הקצר הזה, נסקור כיצד ניתן לאחסן את הפלט של פקודה כמשתנה ב-Bash.

היסודות להגדרת משתנים

שמירת הפלט של פקודה כמשתנה מושגת באמצעות החלפת פיקוד. החלפת פקודה היא עטיפה שמבצעת את הפקודה ב-a סביבת subshell, ומחליף את הפקודה העטופה בפלט הסטנדרטי של הסביבה שבה הפקודה בוצעה. לאחר מכן ניתן להפנות לפלט זה מאוחר יותר, אם הוא מחובר למשתנה ייחוס!

החלפת פקודות יכולה להתבצע באמצעות סימן אחור או סימן הדולר עם סוגריים:

`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, עם שיטות עבודה מומלצות, סטנדרטים מקובלים בתעשייה ודף רמאות כלול. תפסיק לגוגל פקודות Git ולמעשה ללמוד זה!

לבסוף, נוסיף א multiline מושג הקצאת משתנה פקודה על ידי הוספת קו נטוי אחורי () בין ls הפקודה -l דגל כדי להציג רק קבצי טקסט באמצעות *.txt. הנטוי האחורי הוא דמות בריחה שמודיעה לקליפה לא לפרש את הדמות הבאה.

ב echo הפקודה, הוספנו את ה -e דגל כדי להשתמש בתו המיוחד, כלומר, n (שורה חדשה), כדי להדפיס את הפלט בשורה החדשה.

אנו מקבלים את התוצאה הבאה לאחר ביצוע הסקריפט:

$ ./variable.sh

סיכום

במדריך הקצר הזה, בדקנו כיצד ניתן להגדיר את הפלט של פקודה למשתנה ב-Bash. בדקנו את ההבדל בין התחבירים עבור החלפת פיקוד, תוך שימת לב לשיפורי הקריאות של $(command) מעבר להחלפה מבוססת טיק. לאחר מכן, הסתכלנו על מספר דוגמאות הן של הקצאה פשוטה והן של הקצאת פלט משורשרת/מקוננת.

בול זמן:

עוד מ Stackabuse