עזרה קטנה בbash scripting - לינוקס, Mac ומערכות הפעלה אחרות - HWzone פורומים
עבור לתוכן
  • צור חשבון

עזרה קטנה בbash scripting


AgentZ

Recommended Posts

אהלן, אני מנסה (באמצעות bash script) להציג את כמות הזכרון שמשתמשים בו באחוזים.

הנה מה שיש לי עד עכשיו:

#!/bin/bash
used = free -m | awk '/Mem/ {print $3}'
total = free -m | awk '/Mem/ {print $2}'
echo "$used * 100 / $total" | bc
exit

כשאני מנסה להריץ את זה הוא אומר שused וtotal (שני המשתנים) הם פעולות לא מוגדרות (command not found).

מה הבעיה פה?

כמו שאפשר להבין פה אני חדש בכל העסק של bash scripting.

תודה מראש! :yelclap:

קישור לתוכן
שתף באתרים אחרים

אוקיי, זה פתר את הבעיה הראשונה....

אחרי זה התלונן עם אותה שגיאה על האופציה של free אז הוספתי סוגריים מסביב לו:

#!/bin/bash
used=(free -m) | awk '/Mem/ {print $3}'
total=(free -m) | awk '/Mem/ {print $2}'
echo "$used * 100 / $total" | bc
exit

אבל משום מה זה עדיין לא עובד, זורק את השגיאה הזאת (ורק אותה):

(standart_in) 1: parse error

יש לך מושג למה?

קישור לתוכן
שתף באתרים אחרים

הי, סליחה, אני פשוט עובד ומגיב פה ביחד... :P

זה אמור להיראות ככה כדי לעבוד:

#~/bun/bash
used=$(free -m | awk '/Mem/ {print $3}')
total=$(free -m | awk '/Mem/ {print $2}')
echo "$used * 100 / $total" | bc
exit

תשים לב למיקום הסוגריים וסימן ה$.

קישור לתוכן
שתף באתרים אחרים

  • 2 שבועות מאוחר יותר...

היי,

הנה עוד דרך נוספת לכתיבת סקריפט כזה :xyxthumbs:

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


#!/bin/bash
used=`free -m | awk 'NR==2 {print $3}'`
total=`free -m | awk 'NR==2 {print $2}'`
echo "$used * 100 / $total" | bc
exit 0

קישור לתוכן
שתף באתרים אחרים

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

×
  • צור חדש...