Створюйте свою програму поетапно, використовуючи сценарії оболонки - Частина 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

Функція цього модуля полягає в тому, щоб вказати програмі, що консоль для виконання завдань, що вимагають підключення до Інтернету, потребує проксі-сервера. Якщо ти нічого не вказує (Ключ Що натомість? Створіть віртуальну версію себе у без введення 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 дає нам різні варіанти.

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

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

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


Залиште свій коментар

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

*

*

  1. Відповідальний за дані: Мігель Анхель Гатон
  2. Призначення даних: Контроль спаму, управління коментарями.
  3. Легітимація: Ваша згода
  4. Передача даних: Дані не передаватимуться третім особам, за винятком юридичних зобов’язань.
  5. Зберігання даних: База даних, розміщена в мережі Occentus Networks (ЄС)
  6. Права: Ви можете будь-коли обмежити, відновити та видалити свою інформацію.