Изградите свој програм корак по корак користећи Схелл Сцриптинг - 8. део

Поново биенвенидос овом новом лекција (# 8) дел Курс (Водич) на Схелл Сцриптинг ”. У наведеном 7 лекција Успели смо да направимо и / или научимо како да креирамо одређене модуле (одељке) кодова са одређеним функционалностима  Схелл скриптирање помоћу Басх Схелл-а као интерпретатор перформанса. Досадашњи модули су:

Схелл Сцриптинг

Да одем до претходни пост (лекција 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

Функција овог модула је да укаже програму да конзола за обављање задатака који захтевају интернет конекцију захтева проки. ако ти не указује на ништа (Кључ унети без стављања било какве ИП) програм ће то претпоставити није потребан прокси, у супротном морате навести а ИП: ЛУКА, да би могао да конфигурише привремени одлазни прокси и изврши повезивање.

Селецтион_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
             

Функција овог модула је да прикаже а Банер добродошлице кориснику ручно дизајнираном с алфанумеричким и не-алфанумеричким знаковима. Затим прозор информативне поруке по терминалу са Дијалог и на крају трака напретка за контролу следећег корака до следећег модула.

Селецтион_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
       

Функција овог модула је да изврши унапред дефинисану опцију на основу вредности која је претходно сачувана у променљивој. У овом случају, та променљива би покренула избор између наставка обављања само активности преко конзоле са командама и графичким интерфејсима са дијалогом ó преко графичких интерфејса за Десктоп Енвиронмент са Зенити и Гкмессаге.

Селецтион_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               

Функција овог модула је приказивање поруке на опроштајној конзоли и брисање датотеке њеног успешног извршења.

Испод а Сцреенцаст где је приказано како се изводе ови и претходни модули како би могли да провере како функционишу сви модули приказани током претходних 8 часова и потврде снагу Схелл Сцриптинг има виши ниво:

Видео за тест скрипте

И зашто бисмо требали користити конзолу корисничког интерфејса или графичког окружења за нашу скрипту?

То морамо запамтити графички кориснички интерфејси, такође познат као ГУИ (графички кориснички интерфејс) они су медијум који се користи за представљање информација и радњи доступних у доњем интерфејсу, користећи скуп слика и графичких објеката. Његова главна употреба састоји се од пружају једноставно визуелно окружење које омогућава комуникацију са оперативним системом машине или рачунара.

Обично радње спроводимо директном интеракцијом са опремом, односно куцањем команди или извршавањем скрипте помоћу тастатуре. И ГУИ се појављују као еволуција командне линије првих оперативних система и постајући основни комад у графичком окружењу.

И у контексту процес интеракције човек-рачунар, ГУИ је интерактивни технолошки медиј који нам кроз употребу и графичку контекстуализацију визуелног језика омогућава пријатељску интеракцију са рачунарским системом.

Коришћење графичких интерфејса пружају нам предности и недостатке, као што су:

Међу предностима: Олакшати руковање процедурама, приказати сваку наредбу на екрану кроз слику или објекат, пружити стандардизоване контролне механизме као што су прозори и дијалошки оквири за корисника, омогућити кориснику лакшу интеракцију са системом.

Међу недостацима: Користи више ресурса оперативног система, сложеност, време развоја и трошкове таквог развоја.

Ако желите да сазнате више о томе како да направите нове и лепше интерфејсе у терминалу или на радној површини, препоручујем вам да се упознате са неким командама које се користе за изградњу дијалошких прозора са могућношћу примања или давања активних информација помоћу бас скрипти, као што су:

Дијалог: У Приручник за дијалог даје нам различите могућности које имате.

Гкмессаге: У Гкмессаге Мануал даје нам различите могућности које имате.

Зенити: У Зенити приручник даје нам различите могућности које имате.

А ако желите да свом скрипту (програми) дате још посебнији и интерактивнији додир, било помоћу Баш шкољка или друго Граната Препоручујем ове друге програме који вам, када се добро користе, могу помоћи да створите права чуда, а да нисте баш вешти у питањима Схелл Сцриптинг. Међу овим програмима имамо:

  • нотифи-сенд: Веома корисна команда за обавештавање о догађајима као што је обавештавање када стигне е-пошта, контакт се стави на мрежу и подсећа на разне задатке. 
  • тпут: Команда која се користи међу многим стварима за позиционирање курсора на екрану, брисање података са екрана, познавање броја линија и колона на екрану, правилно позиционирање поља, брисање поља чији је улаз откривен као грешка. У сваком случају, овом командом се врши готово сва параметризација екрана. 
  • сетледс: Команда која омогућава контролу тастера за активирање и деактивирање великих / малих слова, нумеричке тастатуре и тастатуре за померање појединачно за сваку конзолу и радну површину.

Па, засад ова серија!


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

Ваша емаил адреса неће бити објављена. Обавезна поља су означена са *

*

*

  1. За податке одговоран: Мигуел Ангел Гатон
  2. Сврха података: Контрола нежељене поште, управљање коментарима.
  3. Легитимација: Ваш пристанак
  4. Комуникација података: Подаци се неће преносити трећим лицима, осим по законској обавези.
  5. Похрана података: База података коју хостује Оццентус Нетворкс (ЕУ)
  6. Права: У било ком тренутку можете ограничити, опоравити и избрисати своје податке.