Онлайн робочі станції OnWorks Linux та Windows

логотип

Безкоштовний онлайн-хостинг для робочих станцій

<Попередній | зміст | Наступна>

Підводячи підсумки

З додаванням позиційних параметрів тепер ми можемо писати досить функціональні скрипти. Для простих завдань, що повторюються, позиційні параметри дозволяють писати дуже корисні функції оболонки, які можна розмістити в .bashrc файлу.

наш сторінка sys_info Програма стала більш складною та витонченою. Ось повний список із виділеними останніми змінами:



#! / бін / баш


# sys_info_page: програма для виведення сторінки системної інформації


PROGNAME=$(базова назва $0)

TITLE="Звіт про системну інформацію для $HOSTNAME" CURRENT_TIME=$(дата +"%x %r %Z")

TIMESTAMP="Створено $CURRENT_TIME, $USER"


report_uptime () { cat <<- _EOF_

Час роботи системи

$(час роботи)

_EOF_ повернення

#! / бін / баш


# 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 () {

якщо [[ $(id -u) -eq 0 ]]; потім кіт <<- _EOF_

Використання домашнього простору (всі користувачі)

$(du -sh /home/*)

_EOF_

ще

кіт <<- _EOF_

Використання домашнього простору ($USER)

$(du -sh $HOME)

_EOF_

fi повернення

}


використання () {

echo "$PROGNAME: використання: $PROGNAME [-f файл | -i]" повернення

}


write_html_page () { cat <<- _EOF_

$TITLE

$TITLE

$TIMESTAMP

$(час роботи звіту)

$(report_disk_space)

$(report_home_space)

_EOF_ повернення

}


# параметри командного рядка процесу

}


report_disk_space () { cat <<- _EOF_

Використання дискового простору

$(df -h)

_EOF_ повернення

}


report_home_space () {

якщо [[ $(id -u) -eq 0 ]]; потім кіт <<- _EOF_

Використання домашнього простору (всі користувачі)

$(du -sh /home/*)

_EOF_

ще

кіт <<- _EOF_

Використання домашнього простору ($USER)

$(du -sh $HOME)

_EOF_

fi повернення

}


використання () {

echo "$PROGNAME: використання: $PROGNAME [-f файл | -i]" повернення

}


write_html_page () { cat <<- _EOF_

$TITLE

$TITLE

$TIMESTAMP

$(час роботи звіту)

$(report_disk_space)

$(report_home_space)

_EOF_ повернення

}


# параметри командного рядка процесу

зображення

Підводячи підсумки


інтерактивний=

ім'я файлу=


в той час як [[ -n $1 ]]; зробити кейс 1 дюйм

-f | --файл)

зсув

ім'я файлу=$1

;;

інтерактивний=

ім'я файлу=


в той час як [[ -n $1 ]]; зробити кейс 1 дюйм

-f | --файл)


-я | --interactive) interactive=1

;;

-h | --help) вихід із використання

;;

*) використання >&2

вихід 1

;;

esac shift

зроблений


# інтерактивний режим


якщо [[ -n $interactive ]]; тоді поки правда; робити

read -p "Введіть ім'я вихідного файлу: " ім'я файлу, якщо [[ -e $filename ]]; тоді

read -p "'$filename' існує. Перезаписати? [y/n/q] > " case $REPLY в

Y|y) розрив

;;

Q|q) echo "Програма завершена." вихід

;;

*) продовжити

;;

що С

elif [[ -z $filename ]]; потім продовжуйте

ще

перерву

fi

зроблений

fi


# вихідна html-сторінка


якщо [[ -n $filename ]]; тоді

якщо торкніться $filename && [[ -f $filename ]]; потім write_html_page > $filename

ще

-я | --interactive) interactive=1

;;

-h | --help) вихід із використання

;;

*) використання >&2

вихід 1

;;

esac shift

зроблений


# інтерактивний режим


якщо [[ -n $interactive ]]; тоді поки правда; робити

read -p "Введіть ім'я вихідного файлу: " ім'я файлу, якщо [[ -e $filename ]]; тоді

read -p "'$filename' існує. Перезаписати? [y/n/q] > " case $REPLY в

Y|y) розрив

;;

Q|q) echo "Програма завершена." вихід

;;

*) продовжити

;;

що С

elif [[ -z $filename ]]; потім продовжуйте

ще

перерву

fi

зроблений

fi


# вихідна html-сторінка


якщо [[ -n $filename ]]; тоді

якщо торкніться $filename && [[ -f $filename ]]; потім write_html_page > $filename

ще


echo "$PROGNAME: Неможливо записати файл '$filename'" >&2 вихід 1

fi ще

write_html_сторінка

fi

echo "$PROGNAME: Неможливо записати файл '$filename'" >&2 вихід 1

fi ще

write_html_сторінка

fi


Ми ще не закінчили. Є ще багато речей, які ми можемо зробити та покращити.


Найпопулярніші хмарні обчислення ОС на OnWorks: