Постройте свою программу шаг за шагом, используя сценарии оболочки - часть 8

Еще раз добро пожаловать к этому новому урок (# 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: ПОРТ, чтобы он мог настроить временный исходящий прокси-сервер и выполнить подключение.

Selección_001

ПРИВЕТСТВЕННЫЙ МОДУЛЬ


# 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
             

Функция этого модуля - показать Приветственный баннер для пользователя, созданный вручную с использованием буквенно-цифровых и не буквенно-цифровых символов. Затем информационное окно сообщения на терминал с Диалог и, наконец, индикатор выполнения для управления следующим шагом к следующему модулю.

Selección_002

Selección_003

Selección_004

МОДУЛЬ ВЫБОРА ПОЛЬЗОВАТЕЛЬСКОГО ИНТЕРФЕЙСА


# 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

Функция этого модуля - создать окно типа меню, которое позволяет выбрать вариант с помощью клавиатуры и мыши. Каждый вариант может выполнить командную команду, модуль, функцию или другой скрипт. В данном конкретном случае он использовался для сохранить значение в переменной что затем позволит принять решение о заказе в соответствии с его содержанием.

Selección_005

Selección_006

Selección_007

МОДУЛЬ ВЫБОРА И ВЫПОЛНЕНИЯ ДОПОЛНИТЕЛЬНЫХ МОДУЛЕЙ


# 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.

Selección_008

Selección_009

Selección_010

Selección_010

Selección_011

МОДУЛЬ ПРОЩАНИЯ


# 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 или другие Оболочка Я рекомендую эти другие программы, которые при правильном использовании могут помочь вам творить настоящие чудеса, не будучи очень опытными в вопросах написания сценариев оболочки. Среди этих программ у нас есть:

  • уведомить-отправить: Очень полезная команда для уведомлений о событиях, таких как уведомление о получении электронного письма, перевод контакта в сеть и напоминания о различных задачах. 
  • ввод: Команда, которая используется, помимо прочего, для позиционирования курсора на экране, удаления данных с экрана, определения количества строк и столбцов на экране, правильного размещения поля, удаления поля, ввод которого был обнаружен как ошибка. В любом случае, почти вся параметризация экрана выполняется с помощью этой команды. 
  • поселения: Команда, позволяющая управлять клавишами активации и деактивации прописных / строчных букв, цифровой клавиатуры и клавиатуры с прокруткой индивидуально для каждой консоли и рабочего стола.

Ну пока что эта серия!


Оставьте свой комментарий

Ваш электронный адрес не будет опубликован. Обязательные для заполнения поля помечены *

*

*

  1. Ответственный за данные: Мигель Анхель Гатон
  2. Назначение данных: контроль спама, управление комментариями.
  3. Легитимация: ваше согласие
  4. Передача данных: данные не будут переданы третьим лицам, кроме как по закону.
  5. Хранение данных: база данных, размещенная в Occentus Networks (ЕС)
  6. Права: в любое время вы можете ограничить, восстановить и удалить свою информацию.