OnWorks Linux ו-Windows Online WorkStations

לוגו

אירוח מקוון בחינם עבור תחנות עבודה

<הקודם | תוכן | הבא>

סיכום

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

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



#! / bin / bash


# sys_info_page: תוכנית לפלט דף מידע מערכת


PROGNAME=$(שם בסיס $0)

TITLE="דוח מידע מערכת עבור $HOSTNAME" CURRENT_TIME=$(תאריך +"%x %r %Z")

TIMESTAMP="נוצר $CURRENT_TIME, על ידי $USER"


report_uptime () { cat <<- _EOF_

רציף של מערכת

$(זמן פעילות)

_EOF_ לחזור

#! / bin / bash


# sys_info_page: תוכנית לפלט דף מידע מערכת


PROGNAME=$(שם בסיס $0)

TITLE="דוח מידע מערכת עבור $HOSTNAME" CURRENT_TIME=$(תאריך +"%x %r %Z")

TIMESTAMP="נוצר $CURRENT_TIME, על ידי $USER"


report_uptime () { cat <<- _EOF_

רציף של מערכת

$(זמן פעילות)

_EOF_ לחזור


}


report_disk_space () { cat <<- _EOF_

ניצול שטח דיסק

$(df -h)

_EOF_ לחזור

}


report_home_space () {

if [[ $(id -u) -eq 0 ]]; ואז חתול <<- _EOF_

ניצול שטח ביתי (כל המשתמשים)

$(du -sh /home/*)

_EOF_

אחר

חתול <<- _EOF_

ניצול שטח ביתי ($USER)

$(du -sh $HOME)

_EOF_

fi לחזור

}


שימוש () {

echo "$PROGNAME: שימוש: $PROGNAME [-f file | -i]" חוזר

}


write_html_page () { חתול <<- _EOF_

$TITLE

$TITLE

$TIMESTAMP

$(report_uptime)

$(report_disk_space)

$(report_home_space)

_EOF_ לחזור

}


# אפשרויות שורת הפקודה תהליך

}


report_disk_space () { cat <<- _EOF_

ניצול שטח דיסק

$(df -h)

_EOF_ לחזור

}


report_home_space () {

if [[ $(id -u) -eq 0 ]]; ואז חתול <<- _EOF_

ניצול שטח ביתי (כל המשתמשים)

$(du -sh /home/*)

_EOF_

אחר

חתול <<- _EOF_

ניצול שטח ביתי ($USER)

$(du -sh $HOME)

_EOF_

fi לחזור

}


שימוש () {

echo "$PROGNAME: שימוש: $PROGNAME [-f file | -i]" חוזר

}


write_html_page () { חתול <<- _EOF_

$TITLE

$TITLE

$TIMESTAMP

$(report_uptime)

$(report_disk_space)

$(report_home_space)

_EOF_ לחזור

}


# אפשרויות שורת הפקודה תהליך

תמונה

סיכום


אינטראקטיבי=

שם קובץ=


while [[ -n $1 ]]; עשה מקרה $1 אינץ'

-f | --קוֹבֶץ)

משמרת

שם קובץ=$1

;;

אינטראקטיבי=

שם קובץ=


while [[ -n $1 ]]; עשה מקרה $1 אינץ'

-f | --קוֹבֶץ)


-י | --אינטראקטיבי) אינטראקטיבי=1

;;

-h | --help) יציאה מהשימוש

;;

*) שימוש >&2

צא מ- 1

;;

משמרת esac

עשה


# מצב אינטראקטיבי


if [[ -n $אינטראקטיבי ]]; ואז בעוד אמת; לַעֲשׂוֹת

read -p "הזן את שם קובץ הפלט: "שם הקובץ אם [[ -e $filename]]; לאחר מכן

קרא -p "'$filename' קיים. להחליף? [y/n/q] > " מקרה $REPLY ב

Y|y) הפסקה

;;

Q|q) הד "התוכנית הסתיימה." יְצִיאָה

;;

*) להמשיך

;;

esac

elif [[ -z $filename]]; ואז להמשיך

אחר

לשבור

fi

עשה

fi


# פלט דף HTML


if [[ -n $filename ]]; לאחר מכן

אם גע ב-$filename && [[ -f $filename]]; ואז write_html_page > $filename

אחר

-י | --אינטראקטיבי) אינטראקטיבי=1

;;

-h | --help) יציאה מהשימוש

;;

*) שימוש >&2

צא מ- 1

;;

משמרת esac

עשה


# מצב אינטראקטיבי


if [[ -n $אינטראקטיבי ]]; ואז בעוד אמת; לַעֲשׂוֹת

read -p "הזן את שם קובץ הפלט: "שם הקובץ אם [[ -e $filename]]; לאחר מכן

קרא -p "'$filename' קיים. להחליף? [y/n/q] > " מקרה $REPLY ב

Y|y) הפסקה

;;

Q|q) הד "התוכנית הסתיימה." יְצִיאָה

;;

*) להמשיך

;;

esac

elif [[ -z $filename]]; ואז להמשיך

אחר

לשבור

fi

עשה

fi


# פלט דף HTML


if [[ -n $filename ]]; לאחר מכן

אם גע ב-$filename && [[ -f $filename]]; ואז write_html_page > $filename

אחר


echo "$PROGNAME: לא ניתן לכתוב את הקובץ '$filename'" >&2 יציאה 1

פי אחר

write_html_page

fi

echo "$PROGNAME: לא ניתן לכתוב את הקובץ '$filename'" >&2 יציאה 1

פי אחר

write_html_page

fi


עוד לא סיימנו. יש עוד דברים שאנחנו יכולים לעשות ושיפורים שאנחנו יכולים לעשות.


מחשוב ענן מערכת ההפעלה המוביל ב-OnWorks: