Izgradite svoj program korak po korak koristeći Shell skriptiranje - Dio 8

Ponovo dobrodošli ovom novom lekcija (# 8) del Kurs (Vodič) o Shell Scripting ”. U gore navedenom 7 lekcija Uspjeli smo napraviti i / ili naučiti kako stvoriti određene module (odjeljke) kodova sa određenim funkcionalnostima  Shell skriptiranje koristeći Bash Shell kao interpretator izvedbe. Dosadašnji moduli su:

Shell skriptiranje

Da idem u prethodni post (lekcija 7) pritisnite sljedeći link:

U ovome osmi (8) S druge strane, koncentrirat ćemo se na izgradnju nekoliko modula, a to su sljedeći:

MODUL KONFIGURACIJE 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

Funkcija ovog modula je da ukaže programu da konzola za izvođenje zadataka koji zahtijevaju internetsku povezanost zahtijeva proxy. Ako ti ne ukazuje na ništa (Ključ ući bez stavljanja bilo kakve IP adrese) program će to pretpostaviti nije potreban proxy, u suprotnom morate navesti a IP: LUKA, da bi mogao konfigurirati privremeni odlazni proxy i izvoditi povezivanje.

Selection_001

MODUL DOBRODOŠLI


# 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
             

Funkcija ovog modula je da prikaže a Natpis dobrodošlice korisniku ručno dizajniranom s alfanumeričkim i nealfanumeričkim znakovima. Zatim prozor informativne poruke po terminalu sa dijalog i na kraju traka napretka za kontrolu sljedećeg koraka do sljedećeg modula.

Selection_002

Selection_003

Selection_004

MODUL ODABIRA KORISNIČKOG SUČELJA


# 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

Funkcija ovog modula je stvaranje prozora tipa izbornika koji omogućava odabir opcije uz upotrebu tipkovnice i miša. Svaka opcija može izvršiti naredbu naredbe, modul, funkciju ili drugu skriptu. U ovom konkretnom slučaju to je bilo naviknuto pohraniti vrijednost u varijablu što će onda dozvoliti odlučiti o narudžbi prema njenom sadržaju.

Selection_005

Selection_006

Selection_007

MODUL ZA ODABIR I IZVRŠENJE DODATNIH 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
       

Funkcija ovog modula je izvršavanje unaprijed definirane opcije na osnovu vrijednosti prethodno pohranjene u varijabli. U ovom slučaju, ta bi varijabla pokrenula izbor između nastavka izvođenja aktivnosti putem konzole s naredbama i grafičkim sučeljima s dijalogom ó putem grafičkih sučelja za radno okruženje sa Zenity i Gxmessage.

Selection_008

Selection_009

Selection_010

Selection_010

Selection_011

MODUL OPROŠTAJA


# 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               

Funkcija ovog modula je prikazivanje poruke na oproštajnoj konzoli i brisanje datoteke njenog uspješnog izvršenja.

Ispod a Screencast gdje je prikazano kako se izvode ovi i prethodni moduli tako da provjeravaju kako rade svi moduli prikazani tijekom prethodnih 8 lekcija i potvrđuju snagu Shell skriptiranje ima viši nivo:

Video za test skripte

I zašto bismo trebali koristiti konzolno korisničko sučelje ili grafičko okruženje za našu skriptu?

Moramo to zapamtiti grafički korisnički interfejsi, takođe poznat kao GUI (grafičko korisničko sučelje) oni su medij koji se koristi za predstavljanje informacija i radnji dostupnih u donjem interfejsu, koristeći skup slika i grafičkih objekata. Njegova glavna upotreba sastoji se od pružaju jednostavno vizuelno okruženje koje omogućava komunikaciju sa operativnim sistemom mašine ili računara.

Obično radnje provodimo izravnom interakcijom s opremom, tj. Kucanjem naredbi ili izvršavanjem skripte pomoću tipkovnice. I GUI se pojavljuju kao evolucija naredbenog retka prvih operativnih sistema i postaje osnovni komad u grafičkom okruženju.

I u kontekstu proces interakcije čovjek-računar, GUI je interaktivni tehnološki medij koji nam kroz upotrebu i grafičku kontekstualizaciju vizualnog jezika omogućava prijateljsku interakciju s računarskim sistemom.

Korištenje grafičkih sučelja pruža nam prednosti i nedostatke, kao što su:

Među prednostima: Olakšajte rukovanje procedurama, prikažite svaku naredbu na ekranu kroz sliku ili objekt, pružite korisniku standardizirane kontrolne mehanizme kao što su prozori i dijaloški okviri, omogućite korisniku lakšu interakciju sa sistemom.

Među nedostacima: Koristi više resursa operativnog sistema, složenost, vrijeme razvoja i troškove takvog razvoja.

Ako želite znati više o tome kako napraviti nova i ljepša sučelja u terminalu ili na radnoj površini, preporučujem vam da naučite neke naredbe koje se koriste za izgradnju dijaloških prozora s mogućnošću primanja ili davanja aktivnih informacija s bash skriptama, kao što su:

Dijalog: U Priručnik za dijalog daje nam različite mogućnosti koje imate.

gxmessage: U Gxmessage Manual daje nam različite mogućnosti koje imate.

Zenty: U Zenity priručnik daje nam različite mogućnosti koje imate.

A ako želite dati još posebniji i interaktivniji dodir vašoj skripti (Programi), bilo pomoću Bash školjka ili drugo školjka Preporučujem ove druge programe koji vam, dobro korišteni, mogu pomoći da stvorite istinska čuda, a da niste baš vješti u pitanjima Shell Scripting. Među tim programima imamo:

  • obavijesti-pošalji: Vrlo korisna naredba za obavještavanje o događajima, poput obavijesti kada stigne e-pošta, kontakt se stavi na mrežu i podseća na razne zadatke. 
  • staviti: Naredba koja se koristi među mnogim stvarima za pozicioniranje kursora na ekranu, brisanje podataka sa ekrana, poznavanje broja linija i stupaca na ekranu, pravilno postavljanje polja, brisanje polja čiji je ulaz otkriven kao greška. U svakom slučaju, ovom se naredbom vrši gotovo sva parametrizacija zaslona. 
  • utvrđeno: Naredba koja vam omogućuje kontrolu tipki za aktiviranje i deaktiviranje velikih / malih slova, numeričke tipkovnice i tipke za pomicanje pojedinačno za svaku konzolu i radnu površinu.

Pa, zasad je ova serija!


Ostavite komentar

Vaša e-mail adresa neće biti objavljena. Obavezna polja su označena sa *

*

*

  1. Za podatke odgovoran: Miguel Ángel Gatón
  2. Svrha podataka: Kontrola neželjene pošte, upravljanje komentarima.
  3. Legitimacija: Vaš pristanak
  4. Komunikacija podataka: Podaci se neće dostavljati trećim stranama, osim po zakonskoj obavezi.
  5. Pohrana podataka: Baza podataka koju hostuje Occentus Networks (EU)
  6. Prava: U bilo kojem trenutku možete ograničiti, oporaviti i izbrisati svoje podatke.