עבור לתוכן
View in the app

A better way to browse. Learn more.

HWzone

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

עזרה קטנה בbash scripting

Featured Replies

פורסם

אהלן, אני מנסה (באמצעות 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

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

פורסם
  • מחבר

כתבתי למעלה, זה חשב ש m- זה פעולה נפרדת, וזרק שגיאה בגלל שלא מצא פעולה בשם הזה.

פורסם
  • מחבר

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

פורסם

הי, סליחה, אני פשוט עובד ומגיב פה ביחד... :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

פורסם
[ash@newisland ~]$ let m=100*$(free -m | awk '/Mem/ {print $3}')/$(free -m | awk '/Mem/ {print $2}')
[ash@newisland ~]$ echo $m
94

פורסם

אם כבר שיפורים אני מעדיף את cut על פני awk למשימות האלה.

ארכיון

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

דיונים חדשים

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.