פקודה expr ו- calc: פתרו ביטויים מתמטיים בטרמינל

אני מאלה שתמיד מתכנתים סקריפטים לחבוט כדי לפתור מצבים יומיומיים (לפצח את סיסמת ה- AP / הנתב, להפוך תהליכים לאוטומטיים וכו '.).

בהזדמנויות מסוימות ראיתי צורך להקצות ערך של ביטוי מתמטי למשתנה, או פשוט לעבוד עם ביטויים מתמטיים, שם אני מוצא את עצמי עם הבעיה שהביטויים הבסיסיים והמתמטיים, חישובים אינם ידידותיים במיוחד. זה קורה ש- bash הוא לא כמו פיתון, מה אנחנו יכולים לומר משתנה = 1 + 5/6 (למשל), ב- Bash עלינו להשתמש בפקודה ביטוי o התחקות

פקודה אקספרס

במילים אחרות, הפקודה expr עוזרת לנו לפתור ביטויים מתמטיים בטרמינל, בעזרתה נוכל לחשב את מה שאנחנו צריכים. לדוגמא, אם אנו רוצים שהתוצאה של 1 + 2 * 8/3 תופיע, הכנסנו למסוף:

expr 1 + 2 \* 8 / 3

שים לב שלפני הכוכבית * הנחתי את קו הנטוי האחורי - »\ ... זה הכרחי, כי expr אינו מפרש את הכוכבית כסמל כפל אלא אם כן \

והתוצאה תופיע על המסך. הנה צילום מסך עם כמה דוגמאות:

צילום מסך_expr1

כפי שניתן לראות בחישובים הסופיים (14/4 ו- 13/4), 14 חלקי 4 הם למעשה 3.5 ו- 13 חלקי 4 הם למעשה 3.25, אז איך יתכן שזה מראה לנו 3 בשני המקרים? מה שקורה הוא שהפקודה expr לא מציגה לנו את העשרוניות, כלומר מה שאחרי הפסיק, היא לא מראה אותה, היא רק מראה לנו את המספר השלם.

במקרה שאנחנו רוצים להקצות למשתנה את התוצאה של ביטוי מתמטי (לדוגמא: 10/2), זה יהיה כך:

variable=`expr 10 / 2`

ואז אנו בודקים זאת באמצעות:

echo $variable

חשוב שיהיה רווח בין כל תו, כלומר רווח בין כל מספר, כל חיבור, חיסור, כפל או סמל חלוקה.

פקודת Calc

זה, שלא כמו הקודם, מדויק מבחינת עשרוניות, לדוגמא:

calc 15 / 4

זה יראה לנו: 3.75

הנה צילום מסך עם מספר דוגמאות:

צילום מסך_חשבון

בניגוד ל- expr, כאשר אנו משתמשים ב- calc עדיף כי אין רווח בין כל תו, כלומר, כי אין רווחים בין מספרים וסמלים, בדיוק כפי שניתן לראות בתמונה הקודמת. הם גם לא צריכים לתמוך a \ לפני *

ובכן, זה בעצם מה שרציתי לספר לכם עליו.

עם זאת, ישנם עדיין כמה טיפים מעניינים אחרים עבור כל פקודה (במיוחד calc), אני ממליץ לך לקרוא את המדריך:

man calc

man expr

לגבי


11 תגובות, השאר את שלך

השאירו את התגובה שלכם

כתובת הדוא"ל שלך לא תפורסם. שדות חובה מסומנים *

*

*

  1. אחראי לנתונים: מיגל אנחל גטון
  2. מטרת הנתונים: בקרת ספאם, ניהול תגובות.
  3. לגיטימציה: הסכמתך
  4. מסירת הנתונים: הנתונים לא יועברו לצדדים שלישיים אלא בהתחייבות חוקית.
  5. אחסון נתונים: מסד נתונים המתארח על ידי Occentus Networks (EU)
  6. זכויות: בכל עת תוכל להגביל, לשחזר ולמחוק את המידע שלך.

  1.   אלב דיג'ו

    מאוד שימושי, אם כי בהחלט לא יהיה טוב להשתמש ב- Bash לחישובי מתמטיקה, העשרונים נחשבים :)

    1.    ואדה דיג'ו

      מר אלב עדיין יש לנו מחשבון bash 🙂 נוכל להשתמש בטיעון -l כדי להשתמש בספריית המתמטיקה הרגילה
      משהו כזה

      $ echo "(4/8)+(6/9)" | bc -l
      1.166666666666666666666666

      ha

      1.    אלב דיג'ו

        ????

      2.    אליוטיים 3000 דיג'ו

        מְעוּלֶה. בדרך זו, אני נמנע מהטרחה של התקנת XCalc בעת שימוש ב- X11 טהור.

      3.    KZKG ^ גאארה דיג'ו

        אה לא הכרתי את זה, נהדר !!

  2.   clow_eriol דיג'ו

    תודה, זה די שימושי 😉

    1.    KZKG ^ גאארה דיג'ו

      תודה ^ _ ^

  3.   נוקטוידו דיג'ו

    תודה. מחשבון המערכת היה מתחרה על פעולות בסיסיות.

    1.    KZKG ^ גאארה דיג'ו

      תודה לך שקראת אותנו 🙂

  4.   חואקין דיג'ו

    עצה טובה!

  5.   פדרו לאלה דיג'ו

    אין לי גוסטו