A Shell Scripting használatával - 8. rész - lépésről lépésre készítse el a programot

Még egyszer bienvenidos erre az újra lecke (# 8) del Tanfolyam (bemutató) tovább Shell Scripting ”. A fentiekben 7 óra Készíthettünk és / vagy megtanulhattuk, hogyan hozhatunk létre bizonyos modulok (szakaszok) kódokat, amelyek speciális funkciókkal rendelkeznek  Shell szkriptek a Bash Shell használatával mint teljesítményértelmező. Ezek a modulok eddig:

Shell Scripting

Elmenni a előző bejegyzés (7. lecke) nyomja meg a következő linket:

Ebben nyolcadik (8) Másrészt több modul felépítésére összpontosítunk, amelyek a következők:

A PROXY KONFIGURÁLÓ MODUL:


# 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

Ennek a modulnak az a feladata, hogy jelezze a program számára, hogy az internetkapcsolatot igénylő feladatok végrehajtásához a konzolnak proxybe van szüksége. Ha te nem jelez semmit (Kulcs belép IP megadása nélkül) a program ezt feltételezi nincs szükség proxy-ra, különben meg kell jelölnie a IP: PORT, egy ideiglenes kimenő proxy konfigurálásához és a csatlakozáshoz.

Kiválasztás_001

A WELCOME MODUL


# 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
             

Ennek a modulnak a feladata a Üdvözlő szalaghirdetés alfanumerikus és nem alfanumerikus karakterekkel kézzel tervezett felhasználóhoz. Ezután egy információs üzenetablak terminálonként a Párbeszéd és végül egy folyamatjelző a következő modul következő lépésének vezérléséhez.

Kiválasztás_002

Kiválasztás_003

Kiválasztás_004

A FELHASZNÁLÓI FELÜLET KIVÁLASZTÁSI MODUL


# 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

Ennek a modulnak a feladata egy olyan menü típusú ablak létrehozása, amely lehetővé teszi az opció kiválasztását mind a billentyűzet, mind az egér használatával. Minden lehetőség lehet hajtson végre parancsparancsot, modult, függvényt vagy más parancsfájlt. Ebben a konkrét esetben megszokták értéket tárol egy változóban amely akkor lehetővé teszi a megrendelést annak tartalma szerint döntse el.

Kiválasztás_005

Kiválasztás_006

Kiválasztás_007

A TOVÁBBI MODULOK KIVÁLASZTÁSÁNAK ÉS VÉGREHAJTÁSÁNAK MODULA


# 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
       

Ennek a modulnak a feladata egy előre definiált opció végrehajtása egy változóban korábban tárolt érték alapján. Ebben az esetben ez a változó kiválaszthatja a tevékenységek folytatását konzolon keresztül parancsokkal és grafikus interfészekkel párbeszéddel ó grafikus interfészeken keresztül az asztali környezethez, a Zenity és a Gxmessage szolgáltatáshoz.

Kiválasztás_008

Kiválasztás_009

Kiválasztás_010

Kiválasztás_010

Kiválasztás_011

A BÚCSÚ MODUL


# 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               

Ennek a modulnak a feladata, hogy üzenetet jelenítsen meg a búcsúkonzolon, és törölje a sikeres végrehajtás fájlját.

A alatt Bemutatónkban ahol bemutatjuk, hogyan hajtják végre ezeket és az előző modulokat, hogy ellenőrizzék az előző 8 óra alatt bemutatott összes modul működését, és tanúsítsák a Shell Scripting magasabb szintű:

Script Test Video

És miért használnánk a konzol felhasználói felületeit vagy grafikus környezetét a szkriptünkhöz?

Erre emlékeznünk kell grafikus felhasználói felületek, más néven GUI (grafikus felhasználói felület) a az alsó felületen elérhető információk és műveletek ábrázolására szolgáló eszköz, kép- és grafikus objektumok együttesének felhasználásával. Fő felhasználása a következőkből áll: biztosítson egyszerű vizuális környezetet, amely lehetővé teszi a kommunikációt egy gép vagy számítógép operációs rendszerével.

A műveleteket általában a berendezéssel való közvetlen interakción keresztül hajtjuk végre, vagyis parancsok beírásával vagy egy parancsfájl végrehajtásával a billentyűzettel. ÉS A GUI-k az első operációs rendszerek parancssorának evolúciójaként jelennek meg és a grafikai környezet alapvető darabjává válás.

És a kontextusban ember-számítógép interakciós folyamat, a GUI az interaktív technológiai közeg, amely lehetővé teszi számunkra, hogy a vizuális nyelv használatával és grafikus kontextualizálásával barátságos interakciót folytassunk egy számítógépes rendszerrel.

A grafikus interfészek használata előnyökkel és hátrányokkal jár, például:

Az előnyök közül: Az eljárások kezelésének megkönnyítése, Minden parancs megjelenítése a képernyőn egy kép vagy objektum segítségével, szabványosított vezérlési mechanizmusok, például ablakok és párbeszédpanelek biztosítása a felhasználó számára, a felhasználó könnyebb interakciója a rendszerrel.

A hátrányok közül: Több operációs rendszer erőforrást, összetettséget, fejlesztési időt és költségeket használ fel egy ilyen fejlesztéshez.

Ha többet szeretne megtudni arról, hogyan lehet új és szebb felületeket készíteni a Terminálban vagy az Asztalon, javasoljuk, hogy ismerkedjen meg néhány olyan paranccsal, amelyeket a párbeszédablakok felépítéséhez használnak, és amelyek bash szkriptekkel képesek működőképes információk fogadására vagy adására. mint:

párbeszéd: In the Dialog Manual megadja nekünk a különböző lehetőségeket.

gxmessage: In the Gxmessage kézikönyv megadja nekünk a különböző lehetőségeket.

Zenty: In the Zenity kézikönyv megadja nekünk a különböző lehetőségeket.

És ha még különlegesebb és interaktívabb érintést szeretne adni a szkriptnek (programoknak), akkor akár a Bash shell vagy más Héj Ajánlom ezeket a más programokat, amelyek megfelelő használatukkal igazi csodák létrehozásában segíthetnek anélkül, hogy nagyon jártasak lennének a Shell Scripting kérdésekben. Ezen programok között van:

  • értesítés-küldés: Nagyon hasznos parancs értesítések készítéséhez olyan eseményekről, mint például értesítés e-mail érkezésekor, a kapcsolattartó online kapcsolata és emlékeztetők készítése a különféle feladatokról. 
  • tedd: Parancs, amelyet többek között használnak a kurzor elhelyezésére a képernyőn, az adatok törléséről a képernyőről, a képernyőn látható sorok és oszlopok számának megismerésére, egy mező megfelelő elhelyezésére, egy olyan mező törlésére, amelynek bemenetét hibaként észlelték. Egyébként a képernyő szinte minden paraméterezését ez a parancs végzi. 
  • szedők: Parancs, amely lehetővé teszi a nagybetűk / kisbetűk, a numerikus billentyűzet és a görgető billentyűzet aktiválási és deaktiválási gombjainak vezérlését minden konzolhoz és asztalhoz külön-külön.

Nos, eddig ez a sorozat!