Створюйте свою програму поетапно, використовуючи сценарії оболонки - Частина 8

Ще раз bienvenidos до цього нового урок (# 8) Дель Курс (Підручник) на Сценарії оболонки ”. У вищезазначеному 7 уроки Ми змогли створити та / або дізнатися про те, як створити певні модулі (розділи) кодів із певними функціональними можливостями  Сценарії оболонки за допомогою Bash Shell як перекладач вистави. Наразі ці модулі:

Сценарії Shell

Щоб перейти до попереднє повідомлення (урок 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-адреси) програма вважатиме це проксі не потрібен, інакше ви повинні вказати a IP: ПОРТ, щоб він налаштував тимчасовий вихідний проксі-сервер та здійснив підключення.

Вибір_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
             

Функція цього модуля - показати a Ласкаво просимо банер користувачеві, розробленому вручну з буквено-цифровими та небуквено-цифровими символами. Потім вікно інформаційного повідомлення на термінал з Діалог і нарешті індикатор прогресу для управління наступним кроком до наступного модуля.

Вибір_002

Вибір_003

Вибір_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

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

Вибір_005

Вибір_006

Вибір_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
       

Функція цього модуля полягає у виконанні заздалегідь визначеної опції на основі значення, яке раніше зберігалося у змінній. У цьому випадку ця змінна буде викликати вибір між продовженням виконання лише діяльності через консоль з командами та графічними інтерфейсами з діалогом ó через графічні інтерфейси для робочого середовища з Zenity та Gxmessage.

Вибір_008

Вибір_009

Вибір_010

Вибір_010

Вибір_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               

Функція цього модуля полягає в тому, щоб показати повідомлення на прощальній консолі та видалити файл його успішного виконання.

Нижче a скрінкасти де показано, як виконуються ці модулі та попередні, щоб вони перевірили, як працюють всі модулі, показані на попередніх 8 уроках, і засвідчили потужність Сценарії Shell має вищий рівень:

Тест сценарію відео

І чому ми повинні використовувати консольний користувальницький інтерфейс або графічне середовище для нашого сценарію?

Ми повинні пам’ятати про це графічні інтерфейси користувача, також відомий як GUI (графічний інтерфейс користувача) вони є носій, що використовується для представлення інформації та дій, доступних у нижньому інтерфейсі, з використанням набору зображень та графічних об'єктів. Основне його використання складається з забезпечити просте візуальне середовище, щоб забезпечити зв’язок з операційною системою машини або комп’ютера.

Зазвичай ми виконуємо дії за допомогою безпосередньої взаємодії з обладнанням, тобто шляхом набору команд або виконання сценарію за допомогою клавіатури. І GUI виникають як еволюція командного рядка перших операційних систем і стає основною частиною в графічному середовищі.

І в контексті процес взаємодії людина-комп’ютер, графічний інтерфейс - це інтерактивний технологічний носій, який дозволяє нам, завдяки використанню та графічній контекстуалізації візуальної мови, дружньої взаємодії з комп’ютерною системою.

Використання графічних інтерфейсів надає нам переваги та недоліки, такі як:

Серед переваг: Сприяти обробці процедур, переглядати кожну команду на екрані через зображення або об'єкт, забезпечувати стандартизовані механізми управління, такі як вікна та діалогові вікна, користувачеві, дозволяти користувачеві простіше взаємодіяти з системою

Серед недоліків: Він використовує більше ресурсів операційної системи, складність, час розробки та вартість такої розробки.

Якщо ви хочете дізнатись більше про те, як створити нові та більш красиві інтерфейси в терміналі або на робочому столі, я рекомендую вам дізнатися про деякі команди, які використовуються для побудови діалогових вікон з можливістю отримувати або надавати діючу інформацію за допомогою скриптів bash, таких як:

діалог: В Діалогове керівництво дає нам різні варіанти.

Повідомлення Gx: В Посібник Gxmessage дає нам різні варіанти.

Зенітність: В Посібник Zenity дає нам різні варіанти.

А якщо ви хочете надати ще більше особливого та інтерактивного дотику до вашого сценарію (програм), будь то за допомогою Баш Шелл або інший Склад Я рекомендую ці інші програми, які, використовуючи добре, можуть допомогти вам створити справжні чудеса, не будучи дуже досвідченими в питаннях сценаріїв оболонки. Серед цих програм ми маємо:

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

Ну, поки що ця серія!


Додати як пріоритетне джерело