Bygg programmet trinn for trinn ved å bruke Shell Scripting - Del 8

Igjen velkommen til dette nye leksjon (# 8) den Kurs (opplæring) Shell Scripting ”. I det ovennevnte 7 leksjoner Vi var i stand til å lage og / eller lære om hvordan vi oppretter visse moduler (seksjoner) av koder med spesifikke funksjoner gjennom  Shell Scripting ved hjelp av Bash Shell som prestasjonstolk. Disse modulene så langt er:

Shell-skripting

Å gå til forrige innlegg (leksjon 7) trykk på følgende lenke:

I dette åttende (8) På den annen side vil vi konsentrere oss om konstruksjonen av flere moduler, disse er følgende:

PROXY-KONFIGURASJONSMODULEN:


# 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

Funksjonen til denne modulen er å indikere til programmet at konsollen for å utføre oppgaver som krever internettforbindelse krever en proxy. Hvis du indikerer ikke noe (Nøkkel Enter uten å legge noen IP) vil programmet anta at ingen fullmakt kreves, ellers må du indikere en IP: PORT, for at den skal konfigurere en midlertidig utgående proxy og utføre tilkobling.

Utvalg_001

VELKOMMEN-MODULEN


# 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
             

Funksjonen til denne modulen er å vise en Velkomstbanner til bruker manuelt designet med alfanumeriske og ikke-alfanumeriske tegn Deretter et informasjonsvindu per terminal med Dialog og til slutt en fremdriftslinje for å kontrollere neste trinn til neste modul.

Utvalg_002

Utvalg_003

Utvalg_004

BRUKERGRENSESNITTET VALGMODUL


# 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

Funksjonen til denne modulen er å lage et menytype-vindu som lar deg velge et alternativ ved å bruke både tastaturet og musen. Hvert alternativ kan utføre en kommandokommando, en modul, en funksjon eller et annet skript. I dette spesielle tilfellet var det vant til lagre en verdi i en variabel som da vil tillate bestem en ordre i henhold til innholdet.

Utvalg_005

Utvalg_006

Utvalg_007

VALG- OG UTFØRINGSMODULEN FOR TILLEGGSMODULER


# 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
       

Funksjonen til denne modulen er å utføre et forhåndsdefinert alternativ basert på en verdi som tidligere er lagret i en variabel. I dette tilfellet vil variabelen utløse et valg mellom å fortsette å utføre bare aktiviteter via konsoll med kommandoer og grafiske grensesnitt med dialog ó via grafiske grensesnitt for skrivebordsmiljøet med Zenity og Gxmessage.

Utvalg_008

Utvalg_009

Utvalg_010

Utvalg_010

Utvalg_011

FARVELMODULEN


# 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               

Funksjonen til denne modulen er å vise en melding fra avskjedskonsollen og slette den vellykkede kjøringsfilen av den samme.

Under a screen hvor det vises hvordan disse modulene og de forrige utføres slik at de kan sjekke hvordan alle modulene som er vist i løpet av de forrige 8 timene fungerer, og sertifisere kraften til Shell-skripting har et høyere nivå:

Skript testvideo

Og hvorfor skal vi bruke konsollbrukergrensesnitt eller grafiske omgivelser til skriptet vårt?

Vi må huske det grafiske brukergrensesnitt, også kjent som GUI (Grafisk brukergrensesnitt) de er medium som brukes til å representere informasjonen og handlingene som er tilgjengelige i det nedre grensesnittet, ved hjelp av et sett med bilder og grafiske objekter. Hovedbruken består av gi et enkelt visuelt miljø for å tillate kommunikasjon med operativsystemet til en maskin eller datamaskin.

Vi utfører vanligvis handlinger gjennom direkte interaksjon med utstyret, det vil si ved å skrive kommandoer eller utføre et skript med tastaturet. OG GUI-er dukker opp som en utvikling av kommandolinjen til de første operativsystemene og bli det grunnleggende stykket i et grafisk miljø.

Og i en sammenheng av interaksjon mellom menneske og datamaskinGUI er det interaktive teknologiske mediet som tillater oss, gjennom bruk og grafisk kontekstualisering av visuelt språk, en vennlig interaksjon med et datasystem.

Bruk av grafiske grensesnitt gir oss fordeler og ulemper, for eksempel:

Blant fordelene: Tilrettelegge for håndtering av prosedyrer, Vis hver kommando på skjermen gjennom et bilde eller objekt, Gi standardiserte kontrollmekanismer som vinduer og dialogbokser til brukeren, La brukeren samhandle med systemet på en enklere måte.

Blant ulempene: Den bruker mer operativsystemressurser, kompleksitet, utviklingstid og kostnadene ved å gjøre en slik utvikling.

Hvis du vil vite mer om hvordan du lager nye og vakrere grensesnitt i Terminal eller på skrivebordet, anbefaler jeg deg å lære om noen kommandoer som brukes til å lage dialogvinduer med muligheten til å motta eller gi handlingsbar informasjon med bash-skript, for eksempel:

dialog: I Dialogbok gir oss de forskjellige alternativene du har.

Gxmelding: I Gxmessage Manual gir oss de forskjellige alternativene du har.

Zenty: I Zenity Manual gir oss de forskjellige alternativene du har.

Og hvis du vil gi et enda mer spesielt og interaktivt preg til skriptet ditt (programmer) enten med Bash skall eller en annen Shell Jeg anbefaler disse andre programmene som, når de brukes bra, kan hjelpe deg med å skape ekte underverk uten å være veldig dyktig i Shell Scripting-problemene. Blant disse programmene har vi:

  • varsle-send: Veldig nyttig kommando for å gjøre varsler om hendelser som å varsle når en e-post kommer, en kontakt blir satt på nettet og gjøre påminnelser om forskjellige oppgaver. 
  • sette: Kommando som brukes blant mange ting for å plassere markøren på skjermen, slette data fra skjermen, kjenne antall linjer og kolonner på skjermen, plassere et felt riktig, slette et felt hvis inngang ble oppdaget som en feil. Uansett, nesten all parameterisering av skjermen gjøres av denne kommandoen. 
  • settleds: Kommando som gjør det mulig å kontrollere aktiverings- og deaktiveringstastene til store / små bokstaver, numerisk tastatur og rulletastatur individuelt for hver konsoll og skrivebord.

Vel, så langt denne serien!


Legg igjen kommentaren

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *

*

*

  1. Ansvarlig for dataene: Miguel Ángel Gatón
  2. Formålet med dataene: Kontroller SPAM, kommentaradministrasjon.
  3. Legitimering: Ditt samtykke
  4. Kommunikasjon av dataene: Dataene vil ikke bli kommunisert til tredjeparter bortsett fra ved juridisk forpliktelse.
  5. Datalagring: Database vert for Occentus Networks (EU)
  6. Rettigheter: Når som helst kan du begrense, gjenopprette og slette informasjonen din.