Zbuduj swój program krok po kroku, korzystając ze skryptów powłoki - część 8

Jeszcze raz powitanie do tego nowego lekcja (# 8) del Kurs (samouczek) na Skrypty powłoki ”. W powyższym 7 lekcji Udało nam się stworzyć i / lub dowiedzieć się, jak tworzyć określone moduły (sekcje) kodów o określonych funkcjonalnościach  Skrypty powłoki przy użyciu powłoki Bash jako tłumacz wydajności. Do tej pory te moduły to:

Skrypty powłoki

Iść do poprzedni post (lekcja 7) naciśnij poniższy link:

W tym ósmy (8) Z drugiej strony skoncentrujemy się na budowie kilku modułów, a mianowicie:

MODUŁ KONFIGURACYJNY PROXY:


# 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

Zadaniem tego modułu jest wskazanie programowi, że konsola do wykonywania zadań wymagających połączenia z Internetem wymaga proxy. Jeśli ty nic nie wskazuje (Klucz Wchodzę bez podania adresu IP) program to założy nie jest wymagane proxy, w przeciwnym razie musisz wskazać IP: PORT, aby skonfigurować tymczasowe wychodzące proxy i zapewnić łączność.

Selection_001

MODUŁ WELCOME


# 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
             

Funkcją tego modułu jest wyświetlanie pliku Baner powitalny dla użytkownika ręcznie zaprojektowane ze znakami alfanumerycznymi i niealfanumerycznymi. Następnie okno komunikatu informacyjnego na terminal z Dialog i wreszcie pasek postępu do kontrolowania następnego kroku do następnego modułu.

Selection_002

Selection_003

Selection_004

MODUŁ WYBORU INTERFEJSU UŻYTKOWNIKA


# 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

Funkcją tego modułu jest stworzenie okna typu menu, które pozwala na wybór opcji zarówno za pomocą klawiatury, jak i myszy. Każda opcja może wykonuje polecenie polecenia, moduł, funkcję lub inny skrypt. W tym konkretnym przypadku był do tego przyzwyczajony przechowywać wartość w zmiennej co wtedy pozwoli zdecydować o zamówieniu według jego treści.

Selection_005

Selection_006

Selection_007

MODUŁ DOBORU I WYKONANIA MODUŁÓW DODATKOWYCH


# 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
       

Funkcją tego modułu jest wykonanie predefiniowanej opcji na podstawie wartości poprzednio przechowywanej w zmiennej. W tym przypadku zmienna ta spowodowałaby wybór między kontynuowaniem wykonywania tylko czynności przez konsolę z poleceniami i interfejsami graficznymi z oknem dialogowym ó poprzez interfejsy graficzne dla środowiska graficznego z Zenity i Gxmessage.

Selection_008

Selection_009

Selection_010

Selection_010

Selection_011

MODUŁ POŻEGNANIA


# 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               

Zadaniem tego modułu jest wyświetlenie komunikatu przez konsolę pożegnalną i usunięcie pliku z jego pomyślnym wykonaniem.

Poniżej a screencast gdzie pokazano, jak działają te i poprzednie moduły, aby mogli sprawdzić, jak działają wszystkie moduły pokazane podczas poprzednich 8 lekcji i poświadczyć moc Skrypty powłoki ma wyższy poziom:

Film testowy skryptu

I dlaczego powinniśmy używać interfejsów użytkownika konsoli lub środowiska graficznego do naszego skryptu?

Musimy to pamiętać graficzne interfejsy użytkownika, znany również jako GUI (graficzny interfejs użytkownika)środki używane do reprezentowania informacji i działań dostępnych w dolnym interfejsie za pomocą zestawu obrazów i obiektów graficznych. Jego główne zastosowanie polega na zapewniają proste środowisko wizualne umożliwiające komunikację z systemem operacyjnym maszyny lub komputera.

Działania wykonujemy najczęściej poprzez bezpośrednią interakcję ze sprzętem, czyli wpisywanie poleceń lub wykonanie skryptu z klawiatury. I GUI pojawiły się jako ewolucja wiersza poleceń pierwszych systemów operacyjnych i stając się podstawowym elementem środowiska graficznego.

I w kontekście proces interakcji człowiek-komputerGUI jest interaktywnym medium technologicznym, które umożliwia nam, poprzez użycie i graficzną kontekstualizację języka wizualnego, przyjazną interakcję z systemem komputerowym.

Korzystanie z interfejsów graficznych daje nam wady i zalety, takie jak:

Wśród zalet: Ułatw obsługę procedur, Wyświetlaj każde polecenie na ekranie poprzez obraz lub obiekt, Zapewnij ujednolicone mechanizmy kontrolne, takie jak okna i okna dialogowe dla użytkownika, Pozwól użytkownikowi na łatwiejszą interakcję z systemem.

Wśród wad: Zajmuje więcej zasobów systemu operacyjnego, złożoności, czasu programowania i kosztów wykonania takiego rozwoju.

Jeśli chcesz dowiedzieć się więcej o tym, jak tworzyć nowe i piękniejsze interfejsy w Terminalu lub na pulpicie, polecam zapoznać się z niektórymi poleceniami używanymi do budowania okien dialogowych z możliwością otrzymywania lub podawania przydatnych informacji za pomocą skryptów bash, takich jak:

dialog: W Dialog Podręcznik daje nam różne opcje, które masz.

Wiadomość Gx: W Podręcznik Gxmessage daje nam różne opcje, które masz.

Zenty: W Podręcznik Zenity daje nam różne opcje, które masz.

A jeśli chcesz nadać swojemu skryptowi (programom) jeszcze bardziej szczególny i interaktywny charakter za pomocą Powłoka Bash lub inne Powłoka Polecam te inne programy, które, jeśli są dobrze używane, mogą pomóc w tworzeniu prawdziwych cudów bez posiadania dużej umiejętności w zakresie skryptów powłoki. Wśród tych programów mamy:

  • powiadomić-wyślij: Bardzo przydatne polecenie do powiadamiania o zdarzeniach, takich jak powiadamianie o nadejściu wiadomości e-mail, kontakt jest umieszczany w trybie online i przypominanie o różnych zadaniach. 
  • wyślij: Polecenie używane między innymi do ustawiania kursora na ekranie, usuwania danych z ekranu, znajomości liczby wierszy i kolumn na ekranie, poprawnego pozycjonowania pola, kasowania pola, którego wpis został wykryty jako błąd. W każdym razie prawie cała parametryzacja ekranu odbywa się za pomocą tego polecenia. 
  • osady: Polecenie umożliwiające sterowanie klawiszami aktywacji i dezaktywacji wielkich / małych liter, klawiaturą numeryczną i klawiaturą przewijaną indywidualnie dla każdej konsoli i pulpitu.

Cóż, jak dotąd ta seria!