Онлайн-рабочие станции OnWorks Linux и Windows

Логотип

Бесплатный хостинг в Интернете для рабочих станций

<Предыдущая | Содержание: | Следующая>

Подведение итогов

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

Наши sys_info_page Программа стала сложнее и изощреннее. Вот полный список с выделенными самыми последними изменениями:



#! / Bin / Баш


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


PROGNAME=$(базовое имя $0)

TITLE = "Отчет о системной информации для $ HOSTNAME" CURRENT_TIME = $ (date + "% x% r% Z")

TIMESTAMP = "Создано $ CURRENT_TIME, $ USER"


report_uptime () { cat <<- _EOF_

Время работы системы

$ (время безотказной работы)

_EOF_ возврат

#! / Bin / Баш


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


PROGNAME=$(базовое имя $0)

TITLE = "Отчет о системной информации для $ HOSTNAME" CURRENT_TIME = $ (date + "% x% r% Z")

TIMESTAMP = "Создано $ CURRENT_TIME, $ USER"


report_uptime () { cat <<- _EOF_

Время работы системы

$ (время безотказной работы)

_EOF_ возврат


}


report_disk_space () { cat <<- _EOF_

Использование дискового пространства

$ (df -h)

_EOF_ возврат

}


отчет_домашнее_пространство () {

если [[$ (id -u) -eq 0]]; затем cat << - _EOF_

Использование домашнего пространства (все пользователи)

$ (du -sh / home / *)

_EOF_

еще

кошка << - _EOF_

Использование домашнего пространства ($ USER)

$ (du -sh $ HOME)

_EOF_

fi возвращение

}


Применение () {

echo "$PROGNAME: использование: $PROGNAME [-f файл | -i]" return

}


write_html_page () { cat <<- _EOF_

$ TITLE

$ TITLE

$ TIMESTAMP

$ (report_uptime)

$ (report_disk_space)

$ (report_home_space)

_EOF_ возврат

}


# параметры командной строки процесса

}


report_disk_space () { cat <<- _EOF_

Использование дискового пространства

$ (df -h)

_EOF_ возврат

}


отчет_домашнее_пространство () {

если [[$ (id -u) -eq 0]]; затем cat << - _EOF_

Использование домашнего пространства (все пользователи)

$ (du -sh / home / *)

_EOF_

еще

кошка << - _EOF_

Использование домашнего пространства ($ USER)

$ (du -sh $ HOME)

_EOF_

fi возвращение

}


Применение () {

echo "$PROGNAME: использование: $PROGNAME [-f файл | -i]" return

}


write_html_page () { cat <<- _EOF_

$ TITLE

$ TITLE

$ TIMESTAMP

$ (report_uptime)

$ (report_disk_space)

$ (report_home_space)

_EOF_ возврат

}


# параметры командной строки процесса

изображение

Подведение итогов


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

имя файла=


в то время как [[ -n $1 ]]; сделать дело на 1 доллар

-ф | --файл)

сдвиг

имя файла = $ 1

;;

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

имя файла=


в то время как [[ -n $1 ]]; сделать дело на 1 доллар

-ф | --файл)


-я | --интерактивный) интерактивный=1

;;

-ч | --help) выход из использования

;;

*) использование >&2

выйти из 1

;;

смена эсак

сделанный


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


если [[ -n $interactive ]]; тогда пока правда; делать

read -p "Введите имя выходного файла: " имя файла if [[ -e $filename ]]; затем

read -p "$filename' существует. Перезаписать? [y/n/q] > " случай $REPLY в

Д|у) перерыв

;;

Q|q) echo «Программа завершена». Выход

;;

*) продолжать

;;

ESAC

элиф [[ -z $имя_файла ]]; затем продолжай

еще

перерыв

fi

сделанный

fi


# вывод html-страницы


если [[ -n $имя_файла]]; затем

если коснуться $filename && [[ -f $filename ]]; затем write_html_page > $filename

еще

-я | --интерактивный) интерактивный=1

;;

-ч | --help) выход из использования

;;

*) использование >&2

выйти из 1

;;

смена эсак

сделанный


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


если [[ -n $interactive ]]; тогда пока правда; делать

read -p "Введите имя выходного файла: " имя файла if [[ -e $filename ]]; затем

read -p "$filename' существует. Перезаписать? [y/n/q] > " случай $REPLY в

Д|у) перерыв

;;

Q|q) echo «Программа завершена». Выход

;;

*) продолжать

;;

ESAC

элиф [[ -z $имя_файла ]]; затем продолжай

еще

перерыв

fi

сделанный

fi


# вывод html-страницы


если [[ -n $имя_файла]]; затем

если коснуться $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: