Buuin ang iyong programa nang sunud-sunod gamit ang Shell Scripting - Bahagi 8

Minsan na naman bienvenidos sa bago aralin (# 8) del Kurso (Tutorial) sa Shell Scripting ”. Sa itaas Mga aralin sa 7 Nagawa naming at / o malaman ang tungkol sa kung paano lumikha ng ilang mga module (mga seksyon) ng mga code na may mga tiyak na pag-andar sa pamamagitan ng  Shell Scripting gamit ang Bash Shell bilang interpreter ng pagganap. Ang mga modyul na ito sa ngayon ay:

Scripting ng Shell

Pumunta sa nakaraang post (aralin 7) pindutin ang sumusunod na link:

Sa ikawalo (8) Sa kabilang banda, magtutuon kami sa pagbuo ng maraming mga module, ito ang mga sumusunod:

ANG MODYONG PROFITO SA KONFIGURASYON:


# 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

Ang pagpapaandar ng modyul na ito ay upang ipahiwatig sa programa na ang console upang maisagawa ang mga gawain na nangangailangan ng pagkakakonekta sa internet ay nangangailangan ng isang proxy. kung ikaw ay hindi nagpapahiwatig ng anumang (Susi Magpasok nang hindi inilalagay ang anumang IP) ipalagay sa programa iyon walang kinakailangang proxy, kung hindi man dapat mong ipahiwatig ang a IP: PORT, para mai-configure nito ang isang pansamantalang papalabas na proxy at magsagawa ng pagkakakonekta.

Pagpili_001

ANG WELCOME MODULE


# 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
             

Ang pagpapaandar ng modyul na ito ay upang ipakita ang a Maligayang pagdating banner sa gumagamit na manu-manong dinisenyo gamit ang mga alphanumeric at hindi alphanumeric na character. Pagkatapos isang window ng mensahe ng impormasyon sa bawat terminal na may Pag-uusap at sa wakas ay isang progress bar upang makontrol ang susunod na hakbang sa susunod na module.

Pagpili_002

Pagpili_003

Pagpili_004

ANG MODERONG PUMILI NG MAMAMAMAGITAN NG MAGAMIT


# 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

Ang pagpapaandar ng modyul na ito ay upang lumikha ng isang window ng uri ng menu na nagbibigay-daan sa iyo upang pumili ng isang pagpipilian sa paggamit ng parehong keyboard at mouse. Maaari ang bawat pagpipilian magpatupad ng isang utos ng utos, isang module, isang pag-andar o ibang script. Sa partikular na kaso, ginamit ito mag-imbak ng isang halaga sa isang variable na magpapahintulot sa gayon magpasya ng isang order alinsunod sa nilalaman nito.

Pagpili_005

Pagpili_006

Pagpili_007

ANG MODYUL PARA SA PILIPIN AT PAGSASABUHAY NG KARAGDAGANG MODYUL


# 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
       

Ang pagpapaandar ng modyul na ito ay upang magpatupad ng isang paunang natukoy na pagpipilian batay sa isang halagang naimbak sa isang variable. Sa kasong ito, ang variable na iyon ay magpapalitaw ng isang pagpipilian sa pagitan ng pagpapatuloy na gumanap ng mga aktibidad lamang sa pamamagitan ng console na may mga utos at mga graphic na interface na may dayalogo ó sa pamamagitan ng mga grapikong interface para sa Desktop na Kapaligiran na may Zenity at Gxmessage.

Pagpili_008

Pagpili_009

Pagpili_010

Pagpili_010

Pagpili_011

ANG MODYONG FAREWELL


# 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               

Ang pagpapaandar ng modyul na ito ay upang ipakita ang isang mensahe sa pamamagitan ng farewell console at tanggalin ang file ng matagumpay na pagpapatupad nito.

Sa ibaba a Screencast kung saan ipinakita kung paano naisasagawa ang mga modyul na ito at ang mga nauna upang suriin nila kung paano gumagana ang lahat ng mga modyul na ipinakita sa nakaraang 8 mga aralin, at pinatutunayan ang lakas ng Scripting ng Shell ay may mas mataas na antas:

Video ng Pagsubok sa Script

At bakit dapat kaming gumamit ng mga interface ng gumagamit ng console o grapikong kapaligiran sa aming Script?

Dapat nating alalahanin iyon mga graphic interface ng gumagamit, kilala din sa GUI (Graphical User Interface) sila ang daluyan na ginamit upang kumatawan sa impormasyon at mga pagkilos na magagamit sa mas mababang interface, gamit ang isang hanay ng mga imahe at mga graphic na bagay. Ang pangunahing paggamit nito ay binubuo ng magbigay ng isang simpleng visual environment upang payagan ang komunikasyon sa operating system ng isang machine o computer.

Karaniwan isinasagawa namin ang mga pagkilos sa pamamagitan ng direktang pakikipag-ugnay sa kagamitan, iyon ay, sa pamamagitan ng pagta-type ng mga utos o pagpapatupad ng isang script sa keyboard. AT Ang mga GUI ay lumitaw bilang isang ebolusyon ng linya ng utos ng mga unang operating system at nagiging pangunahing piraso sa isang grapikong kapaligiran.

At sa isang konteksto ng proseso ng pakikipag-ugnayan ng tao-computer, ang GUI ay ang interactive na teknolohikal na daluyan na nagbibigay-daan sa amin, sa pamamagitan ng paggamit at grapwalong konteksto ng visual na wika, isang palakaibigang pakikipag-ugnay sa isang computer system.

Ang paggamit ng mga grapikong interface ay nagbibigay sa amin ng mga pakinabang at kawalan, tulad ng:

Kabilang sa mga kalamangan: Gawing madali ang paghawak ng mga pamamaraan, Tingnan ang bawat utos sa screen sa pamamagitan ng isang imahe o object, Magbigay ng standardized na mga mekanismo ng kontrol tulad ng mga bintana at mga kahon ng dayalogo sa gumagamit, Payagan ang gumagamit na makipag-ugnay sa system sa isang mas madaling paraan.

Kabilang sa mga disadvantages: Gumagamit ito ng mas maraming mapagkukunan ng operating system, kumplikado, oras ng pag-unlad, at gastos ng paggawa ng naturang kaunlaran.

Kung nais mong malaman ang higit pa tungkol sa kung paano gumawa ng bago at mas magagandang mga interface sa Terminal o sa Desktop, inirerekumenda kong malaman mo ang tungkol sa ilang mga utos na ginagamit upang bumuo ng mga dialog window na may kakayahang tumanggap o magbigay ng naaaksyunang impormasyon sa mga bash script, tulad ng bilang:

dialogue: Sa Manwal ng Dialog ay nagbibigay sa amin ng iba't ibang mga pagpipilian na mayroon ka.

gxmessage: Sa Manwal ng Gxmessage ay nagbibigay sa amin ng iba't ibang mga pagpipilian na mayroon ka.

Zenty: Sa Manwal ng Zenity ay nagbibigay sa amin ng iba't ibang mga pagpipilian na mayroon ka.

At kung nais mong magbigay ng isang mas espesyal at interactive na ugnayan sa iyong Script (Program) alinman sa Bash Shell o iba pa Talukap ng alimango Inirerekumenda ko ang iba pang mga program na ito, kapag ginamit nang maayos, ay makakatulong sa iyo na lumikha ng mga totoong kababalaghan nang hindi masyadong sanay sa mga isyu sa Shell Scripting. Kabilang sa mga programang ito ay mayroon kaming:

  • abisuhan-ipadala: Napaka kapaki-pakinabang na utos upang gumawa ng mga abiso para sa mga kaganapan tulad ng pag-abiso kapag dumating ang isang email, isang contact ang inilalagay sa online at gumagawa ng mga paalala ng iba't ibang mga gawain. 
  • ilagay: Ang utos na ginamit kasama ng maraming mga bagay upang iposisyon ang cursor sa screen, burahin ang data mula sa screen, alamin ang bilang ng mga linya at haligi sa screen, tamang posisyon ang isang patlang, burahin ang isang patlang na ang input ay napansin bilang isang error. Gayunpaman, halos lahat ng parameterization ng screen ay ginagawa ng utos na ito. 
  • seleds: Command na nagbibigay-daan upang makontrol ang mga activation at deactivation key ng malalaking titik / maliit na titik, ang numerong keyboard at ang scrolling keyboard nang paisa-isa para sa bawat console at desktop.

Sa ngayon, hanggang ngayon ang seryeng ito!


Iwanan ang iyong puna

Ang iyong email address ay hindi nai-publish. Mga kinakailangang patlang ay minarkahan ng *

*

*

  1. Responsable para sa data: Miguel Ángel Gatón
  2. Layunin ng data: Kontrolin ang SPAM, pamamahala ng komento.
  3. Legitimation: Ang iyong pahintulot
  4. Komunikasyon ng data: Ang data ay hindi maiparating sa mga third party maliban sa ligal na obligasyon.
  5. Imbakan ng data: Ang database na naka-host ng Occentus Networks (EU)
  6. Mga Karapatan: Sa anumang oras maaari mong limitahan, mabawi at tanggalin ang iyong impormasyon.