Еще раз добро пожаловать к этому новому урок (# 8) из Курс (Учебник) на Сценарии оболочки ». В приведенном выше Уроки 7 Мы смогли создать и / или узнать о том, как создавать определенные модули (разделы) кода с определенными функциями через Создание сценариев оболочки с использованием оболочки Bash как исполнитель-интерпретатор. На данный момент эти модули:
Идти в предыдущая запись (урок 7) нажмите следующую ссылку:
В этом восьмой (8) С другой стороны, мы сконцентрируемся на создании нескольких модулей, а именно:
МОДУЛЬ КОНФИГУРАЦИИ ПРОКСИ:
# MODULO DE CONFIGURACIÓN DE PROXY
read -p "En caso de requerir configurar un Proxy en su Terminal, introduzca la dirección_ip:puerto necesaria, en caso contrario solo presione la tecla ENTER: " IP_PTO_PROXY
# Nota: Indicar dirección_ip: puerto solo en caso de ser necesario activar debido
# a proxy interno no transparente para la terminal dentro de la red de trabajo
# donde se ejecute.
echo -e '\a'
export http_proxy=$IP_PTO_PROXY
#export no_proxy="127.0.0.1, localhost, 192.168.0.0/22, mi_institucion.gob.ve:8080"
sleep 3
clear
read -p "SI DESEA CANCELAR PRESIONE CUALQUIERA DE LOS SIGUIENTES CARACTERES: "s" "S" "y" "Y". DE LO CONTRARIO PRESIONE CUALQUIER OTRA TECLA! : " op
if [[ $op == "y" || $op == "Y" || $op == "s" || $op == "S" ]];
then
sleep 3 ; clear ; exit 0
else
sleep 3 ; clear ; read -p "EL PROGRAMA CONTINUARA, OPRIMA CUALQUIER TECLA PARA CONTINUAR..." && sleep 3 ; clear
fi
Функция этого модуля - указать программе, что консоль для выполнения задач, требующих подключения к Интернету, требует прокси-сервера. если ты ничего не указывает (Ключ Enter без указания IP) программа предполагает, что прокси не требуется, в противном случае необходимо указать IP: ПОРТ, чтобы он мог настроить временный исходящий прокси-сервер и выполнить подключение.
# MODULO DE BIENVENIDA
play /usr/share/sounds/startup3.wav 2> /dev/null
echo " BIENVENIDOS AL PROGRAMA "
sleep 3
clear
dialog --infobox "\n \n \nGRACIAS POR USAR ESTE SCRIPT..." 10 80 ; sleep 3
DIALOG=${DIALOG=dialog}
COUNT=10
(
while test $COUNT != 110
do
echo $COUNT
echo "XXX"
echo "ESTIMADO USUARIO, BIENVENIDO AL SCRIPT..."
echo "GRACIAS POR UTILIZARME..."
echo "ESPERE UNOS SEGUNDOS MIENTRAS ME INICIALIZO... ($COUNT %)"
echo "XXX"
COUNT=`expr $COUNT + 10`
sleep 1
done
) |
$DIALOG --title "LPI - SB" --gauge "INICIALIZANDO EL SCRIPT" 10 80 0
clear
echo " SCRIPT DE TRABAJO EN EJECUCIÓN "
echo ""
sleep 3
clear
Функция этого модуля - показать Приветственный баннер для пользователя, созданный вручную с использованием буквенно-цифровых и не буквенно-цифровых символов. Затем информационное окно сообщения на терминал с Диалог и, наконец, индикатор выполнения для управления следующим шагом к следующему модулю.
МОДУЛЬ ВЫБОРА ПОЛЬЗОВАТЕЛЬСКОГО ИНТЕРФЕЙСА
# MODULO DE SELECCIÓN DE INTERFACE DE USUARIO
DIALOG_CANCEL=1
DIALOG_ESC=255
HEIGHT=0
WIDTH=0
display_result() {
dialog --title "$1" \
--no-collapse \
--msgbox "$result" 0 0
}
while true; do
exec 3>&1
selection=$(dialog \
--backtitle "Script en ejecución" \
--title "Menu" \
--clear \
--cancel-label "Exit" \
--menu "Seleccione una (1) opción, por favor:" $HEIGHT $WIDTH 4 \
"1" "Usar interfaz de usuario (GUI) por Terminal" \
"2" "Usar interfaz de usuario (GUI) por Escritorio" \
"3" "Cerrar la sesión del Script" \
2>&1 1>&3)
exit_status=$?
exec 3>&-
case $exit_status in
$DIALOG_CANCEL)
clear
echo "Sesión del Script cancelada."
exit
;;
$DIALOG_ESC)
clear
echo "Sesión del Script abortada." >&2
exit 1
;;
esac
case $selection in
0 )
clear
echo "Programa Terminado."
;;
1 )
result=$(echo "Usuario $USERNAME, usted ha seleccionado la interfaz de usuario (GUI) por Terminal"; echo $FECHA_SISTEMA_N / $HORA_SISTEMA)
display_result "Script de Trabajo"
USER_INTERFACE=T ; break
;;
2 )
result=$(echo "Usuario $USERNAME, usted ha seleccionado la interfaz de usuario (GUI) por escritorio"; echo $FECHA_SISTEMA_N / $HORA_SISTEMA)
display_result "Script de Trabajo"
USER_INTERFACE=E ; break
;;
3 )
result=$(echo "Usuario $USERNAME, el SCRIPT ha seleccionado la interfaz de usuario (GUI) por Terminal por defecto"; echo $FECHA_SISTEMA_N / $HORA_SISTEMA)
display_result "Script de trabajo"
USER_INTERFACE=T ; break
;;
esac
done
Функция этого модуля - создать окно типа меню, которое позволяет выбрать вариант с помощью клавиатуры и мыши. Каждый вариант может выполнить командную команду, модуль, функцию или другой скрипт. В данном конкретном случае он использовался для сохранить значение в переменной что затем позволит принять решение о заказе в соответствии с его содержанием.
МОДУЛЬ ВЫБОРА И ВЫПОЛНЕНИЯ ДОПОЛНИТЕЛЬНЫХ МОДУЛЕЙ
# MODULO DE SELECCIÓN Y EJECUCIÓN DE MÓDULOS ADICIONALES
if [[ "$USER_INTERFACE" == "T" ]]; then
bash $UBICACION/lpi_sb8_gui_terminal.sh
sleep 3
else
bash $UBICACION/lpi_sb8_acond_audiovisual_g_2016.sh
bash $UBICACION/lpi_sb8_act_mtto_g_2016.sh
fi
Функция этого модуля состоит в том, чтобы выполнить предопределенную опцию на основе значения, ранее сохраненного в переменной. В этом случае эта переменная инициирует выбор между продолжением выполнения только действий. через консоль с командами и графические интерфейсы с диалогом ó через графические интерфейсы для Desktop Environment с Zenity и Gxmessage.
# MODULO DE DESPEDIDA
# Sección que muestra un mensaje de despedida al usuario
echo -e '\a'
echo ''
echo ''
echo '#--------------------------------------------------------#'
echo '# ESPERE UNOS SEGUNDOS MIENTRAS SE CIERRAN TODOS LOS #'
echo '# PROCESOS ABIERTOS DEL SCRIPT #'
echo '#--------------------------------------------------------#'
echo ''
echo ''
sleep 5
clear
# Sección que instala los paquetes bases del Script
echo -e '\a'
echo ''
echo ''
echo '#--------------------------------------------------------#'
echo '# MUCHAS GRACIAS POR USAR EL SCRIPT #'
echo '# #'
echo '# EL PROGRAMA HA CULMINADO Y SE CERRARÁ INMEDIATAMENTE #'
echo '# ESTIMADO USUARIO #'
echo '#--------------------------------------------------------#'
echo ''
echo ''
sleep 3
clear
wget -o /dev/null --user-agent="Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.2 Safari/537.36" -O "/tmp/audio.mp3" "https://translate.google.co.ve/translate_tts?ie=UTF-8&q=MUCHAS%20GRACIAS%20POR%20USAR%20EL%20LINUX%20POST%20INSTALL%20-%20SCRIPT%20BICENTENARIO%2C%20EL%20PROGRAMA%20HA%20FINALIZADO%20Y%20SE%20CERRAR%C3%81%20INMEDIATAMENTE%2C%20ESTIMADO%20USUARIO.&tl=es&total=1&idx=0&textlen=141&tk=899229.758054&client=t&prev=input" ; play -q /tmp/audio.mp3
play /usr/share/sounds/shutdown1.wav 2> /dev/null
rm -f $UBICACION/$FILE_LOCK
setterm --initialize
# MODULO DE DESPEDIDA
Функция этого модуля состоит в том, чтобы показать сообщение прощальной консоли и удалить его файл успешного выполнения.
Ниже Screencast где показано, как выполняются эти и предыдущие модули, чтобы они проверяли, как работают все модули, показанные во время предыдущих 8 уроков, и удостоверяли силу Скрипты оболочки имеет более высокий уровень:
И почему мы должны использовать консольные пользовательские интерфейсы или графическую среду для нашего скрипта?
Мы должны помнить это графический пользовательский интерфейстакже известный как GUI (графический интерфейс пользователя) являются среда, используемая для представления информации и действий, доступных в нижнем интерфейсе, с использованием набора изображений и графических объектов. Его основное использование состоит из предоставить простую визуальную среду, позволяющую взаимодействовать с операционной системой машины или компьютера.
Обычно мы выполняем действия посредством прямого взаимодействия с оборудованием, то есть путем набора команд или выполнения сценария с клавиатуры. И Графические интерфейсы пользователя возникли как эволюция командной строки первых операционных систем. и становясь основным элементом графической среды.
И в контексте процесс взаимодействия человека с компьютером, графический интерфейс пользователя - это интерактивная технологическая среда, которая позволяет нам, посредством использования и графической контекстуализации визуального языка, дружественного взаимодействия с компьютерной системой.
Использование графических интерфейсов дает нам преимущества и недостатки, такие как:
Среди преимуществ: Упрощение обработки процедур, отображение каждой команды на экране через изображение или объект, предоставление пользователю стандартизированных механизмов управления, таких как окна и диалоговые окна, возможность упрощения взаимодействия пользователя с системой.
Из минусов: Он использует больше ресурсов операционной системы, сложность, время разработки и стоимость выполнения такой разработки.
Если вы хотите узнать больше о том, как создавать новые и более красивые интерфейсы в Терминале или на рабочем столе, я рекомендую вам узнать о некоторых командах, которые используются для создания диалоговых окон с возможностью получать или предоставлять полезную информацию с помощью сценариев bash, например в виде:
диалог: В Руководство по диалогу дает нам различные варианты, которые у вас есть.
Gxсообщение: В Руководство Gxmessage дает нам различные варианты, которые у вас есть.
Зенити: В Руководство Zenity дает нам различные варианты, которые у вас есть.
А если вы хотите придать своему скрипту (программам) еще более особый и интерактивный вид, либо с помощью Оболочка Bash или другие Оболочка Я рекомендую эти другие программы, которые при правильном использовании могут помочь вам творить настоящие чудеса, не будучи очень опытными в вопросах написания сценариев оболочки. Среди этих программ у нас есть:
- уведомить-отправить: Очень полезная команда для уведомлений о событиях, таких как уведомление о получении электронного письма, перевод контакта в сеть и напоминания о различных задачах.
- ввод: Команда, которая используется, помимо прочего, для позиционирования курсора на экране, удаления данных с экрана, определения количества строк и столбцов на экране, правильного размещения поля, удаления поля, ввод которого был обнаружен как ошибка. В любом случае, почти вся параметризация экрана выполняется с помощью этой команды.
- поселения: Команда, позволяющая управлять клавишами активации и деактивации прописных / строчных букв, цифровой клавиатуры и клавиатуры с прокруткой индивидуально для каждой консоли и рабочего стола.
Ну пока что эта серия!