Ehitage oma programm järk-järgult, kasutades Shelli skripte - osa 8

Veel kord bienvenidos selle uue juurde õppetund (# 8) kohta Kursus (õpetus) edasi Shelli skriptimine ”. Eespool 7 õppetunnid Saime koostada ja / või teada saada, kuidas luua teatud funktsioonidega koodide teatud mooduleid (jaotisi)  Shelli skriptimine Bash Shelli abil etendustõlgina. Need moodulid on seni:

Shelli skriptimine

Et minna eelmine postitus (õppetund 7) vajutage järgmist linki:

Sel kaheksas (8) Osaliselt keskendume mitme mooduli ehitamisele, mis on järgmised:

PRAKSIKONFIGUURIMISMOODUL:


# 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

Selle mooduli ülesandeks on näidata programmile, et konsool Interneti-ühendust vajavate ülesannete täitmiseks vajab puhverserverit. Kui sa ei näita midagi (Võti sisene ilma IP-d panemata) eeldab programm seda puhverserverit pole vaja, vastasel juhul peate märkima a IP: PORT, et konfigureerida ajutine väljaminev puhverserver ja ühenduvus.

Valik_001

Tere tulemast moodul


# 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
             

Selle mooduli ülesandeks on näidata a Tere tulemast bänner kasutajale, kes on käsitsi kujundatud tähtnumbriliste ja mitte-tähtnumbriliste tähtedega. Seejärel informatiivne sõnumiaken terminali kohta Dialoog ja lõpuks edenemisriba järgmise mooduli järgmise sammu juhtimiseks.

Valik_002

Valik_003

Valik_004

KASUTAJA LIIDESE VALIMISMOODUL


# 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

Selle mooduli ülesandeks on luua menüü tüüpi aken, mis võimaldab valida valiku nii klaviatuuri kui ka hiire abil. Iga võimalus saab käivitada käsukäsk, moodul, funktsioon või muu skript. Sel konkreetsel juhul oli see harjunud salvestada väärtus muutujasse mis siis lubab otsustada tellimus vastavalt selle sisule.

Valik_005

Valik_006

Valik_007

LISAMoodulite valimise ja täitmise moodul


# 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
       

Selle mooduli ülesandeks on eelnevalt määratletud valiku käivitamine muutujasse varem salvestatud väärtuse põhjal. Sel juhul käivitaks see muutuja valiku ainult tegevuse jätkamise vahel konsooli kaudu koos käskude ja graafiliste liidestega dialoogiga ó graafiliste liideste kaudu töölauakeskkonnale Zenity ja Gxmessage abil.

Valik_008

Valik_009

Valik_010

Valik_010

Valik_011

HÜVITAMISMOODUL


# 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               

Selle mooduli ülesandeks on näidata hüvastijätukonsooli sõnumit ja kustutada selle edukas täitmisfail.

Allpool a Screencast kus näidatakse, kuidas neid ja eelmisi mooduleid täidetakse, et nad saaksid kontrollida, kuidas kõik eelmise 8 tunni jooksul näidatud moodulid töötavad, ja tõendada Shelli skriptimine on kõrgemal tasemel:

Skripti testiv video

Ja miks peaksime oma skripti jaoks kasutama konsooli kasutajaliideseid või graafilist keskkonda?

Peame seda meeles pidama graafilised kasutajaliidesed, tuntud ka kui GUI (graafiline kasutajaliides) nad on vahend, mida kasutatakse alumisel liidesel saadaoleva teabe ja toimingute esitamiseks, kasutades piltide ja graafiliste objektide komplekti. Selle peamine kasutusala on pakkuma lihtsat visuaalset keskkonda, mis võimaldab suhelda masina või arvuti operatsioonisüsteemiga.

Tavaliselt teostame toiminguid otsese suhtluse kaudu seadmetega, see tähendab käskude tippimisega või klaviatuuriga skripti käivitamisega. JA GUI-d tekivad kui esimeste operatsioonisüsteemide käsurea evolutsioon ja muutumas põhiliseks tükiks graafilises keskkonnas.

Ja kontekstis inimese ja arvuti suhtlemisprotsess, GUI on interaktiivne tehnoloogiline meedium, mis võimaldab meil visuaalse keele kasutamise ja graafilise kontekstualiseerimise kaudu sõbralikku suhtlust arvutisüsteemiga.

Graafiliste liideste kasutamine pakub meile eeliseid ja puudusi, näiteks:

Eelised: Protseduuride käsitlemise hõlbustamine, iga käsu kuvamine ekraanil pildi või objekti kaudu, kasutajatele standardsete juhtimismehhanismide, näiteks aknad ja dialoogiboksid, võimaldamine kasutajal süsteemiga lihtsamal viisil suhelda.

Puuduste hulgas: See kasutab rohkem arendussüsteemi ressursse, keerukust, arendusaega ja kulusid.

Kui soovite rohkem teada saada, kuidas teha uusi ja ilusamaid liideseid terminalis või töölaual, soovitan teil õppida mõningate käskude kohta, mida kasutatakse dialoogiakende loomiseks koos võimalusega vastu võtta või anda toimivat teavet bashi skriptidega, näiteks kui:

Dialoog: Aastal Dialoogi käsiraamat annab meile erinevad võimalused.

gxmessage: Aastal Gxmessage'i käsiraamat annab meile erinevad võimalused.

Zenty: Aastal Zenity käsiraamat annab meile erinevad võimalused.

Ja kui soovite oma skriptile (programmidele) veelgi erilisema ja interaktiivsema lihvi anda, siis kas Bash kest vm Shell Soovitan neid muid programme, mis hea kasutamise korral aitavad teil luua tõelisi imesid, ilma et oleksite Shell Scriptinguga seotud probleemides väga osav. Nende programmide hulgas on:

  • teatama-saatma: Väga kasulik käsk teatada sündmustest, näiteks e-kirja saabumisest teavitamine, kontakti ühendamine võrgus ja meeldetuletuste tegemine mitmesugustest ülesannetest. 
  • pane: Käsk, mida kasutatakse muu hulgas kursori paigutamiseks ekraanile, ekraanilt andmete kustutamiseks, ekraanil olevate ridade ja veergude arvu teadmiseks, välja õige paigutamiseks, välja kustutamiseks, mille sisend tuvastati veana. Igatahes toimub peaaegu kogu ekraani parameetrite määramine selle käsu abil. 
  • rahutu: Käsk, mis võimaldab juhtida suurte / väikeste tähtede, numbriklaviatuuri ja kerimisklaviatuuri sisse- ja väljalülitamisklahve iga konsooli ja töölaua jaoks eraldi.

Noh, siiani see sari!