สร้างโปรแกรมของคุณทีละขั้นตอนโดยใช้ Shell Scripting - ตอนที่ 8

อีกครั้ง ยินดีต้อนรับ ใหม่นี้ บทเรียน (# 8) เดล หลักสูตร (บทช่วยสอน) บน เชลล์สคริปต์” ในข้างต้น 7 บทเรียน เราสามารถสร้างและ / หรือเรียนรู้เกี่ยวกับวิธีสร้างโมดูล (ส่วน) ของโค้ดที่มีฟังก์ชันเฉพาะได้ผ่าน  การเขียนสคริปต์เชลล์โดยใช้ Bash Shell ในฐานะล่ามการแสดง โมดูลเหล่านี้คือ:

การเขียนสคริปต์เชลล์

เพื่อไปที่ไฟล์ โพสต์ก่อนหน้า (บทที่ 7) กดลิงค์ต่อไปนี้:

ในการนี​​้ แปด (8) ในทางกลับกันเราจะมุ่งเน้นไปที่การสร้างโมดูลต่างๆซึ่งมีดังต่อไปนี้:

โมดูลการกำหนดค่าพร็อกซี:


# 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

ฟังก์ชั่นของโมดูลนี้คือระบุให้โปรแกรมทราบว่าคอนโซลในการทำงานที่ต้องเชื่อมต่ออินเทอร์เน็ตต้องใช้พร็อกซี ถ้าคุณ ไม่ได้บ่งบอกอะไรเลย (สำคัญ เข้าสู่ โดยไม่ต้องใส่ IP ใด ๆ ) โปรแกรมจะถือว่า ไม่ต้องใช้พร็อกซีมิฉะนั้นคุณต้องระบุก IP: PORTเพื่อกำหนดค่าพร็อกซีขาออกชั่วคราวและทำการเชื่อมต่อ

Selection_001

โมดูลต้อนรับ


# 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
             

หน้าที่ของโมดูลนี้คือการแสดงไฟล์ แบนเนอร์ต้อนรับ สำหรับผู้ใช้ที่ออกแบบด้วยตนเองโดยใช้อักขระที่เป็นตัวเลขและตัวอักษรและตัวเลข จากนั้นหน้าต่างข้อความแสดงข้อมูลต่อเทอร์มินัลด้วย บทสนทนา และสุดท้ายแถบความคืบหน้าเพื่อควบคุมขั้นตอนถัดไปของโมดูลถัดไป

Selection_002

Selection_003

Selection_004

โมดูลการเลือกอินเทอร์เฟซของผู้ใช้


# 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

ฟังก์ชั่นของโมดูลนี้คือการสร้างหน้าต่างประเภทเมนูที่อนุญาตให้เลือกตัวเลือกโดยใช้ทั้งแป้นพิมพ์และเมาส์ แต่ละตัวเลือกสามารถ ดำเนินการคำสั่งคำสั่งโมดูลฟังก์ชันหรือสคริปต์อื่น. ในกรณีนี้มันถูกใช้เพื่อ เก็บค่าในตัวแปร ซึ่งจะอนุญาต ตัดสินใจสั่งซื้อตามเนื้อหา

Selection_005

Selection_006

Selection_007

โมดูลการเลือกและการดำเนินการของโมดูลเพิ่มเติม


# 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
       

ฟังก์ชันของโมดูลนี้คือเรียกใช้ตัวเลือกที่กำหนดไว้ล่วงหน้าตามค่าที่เก็บไว้ก่อนหน้านี้ในตัวแปร ในกรณีนี้ตัวแปรนั้นจะทริกเกอร์การเลือกระหว่างดำเนินกิจกรรมต่อไปเท่านั้น ผ่านคอนโซลด้วยคำสั่งและอินเทอร์เฟซกราฟิกพร้อมกล่องโต้ตอบ ó ผ่านอินเทอร์เฟซแบบกราฟิกสำหรับสภาพแวดล้อมเดสก์ท็อปด้วย Zenity และ Gxmessage

Selection_008

Selection_009

Selection_010

Selection_010

Selection_011

โมดูล 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               

ฟังก์ชั่นของโมดูลนี้คือการแสดงข้อความที่คอนโซลอำลาและลบไฟล์ของการดำเนินการที่สำเร็จ

ด้านล่าง a screencast ซึ่งจะแสดงให้เห็นว่าโมดูลเหล่านี้และโมดูลก่อนหน้านี้ทำงานอย่างไรเพื่อให้พวกเขาตรวจสอบว่าโมดูลทั้งหมดที่แสดงในช่วง 8 บทเรียนก่อนหน้านี้ทำงานอย่างไรและรับรองพลังของ การเขียนสคริปต์เชลล์ มีระดับที่สูงขึ้น:

วิดีโอทดสอบสคริปต์

และเหตุใดเราจึงควรใช้ส่วนต่อประสานผู้ใช้คอนโซลหรือสภาพแวดล้อมแบบกราฟิกกับสคริปต์ของเรา?

เราต้องจำไว้ว่า ส่วนต่อประสานผู้ใช้แบบกราฟิกยังเป็นที่รู้จัก GUI (อินเทอร์เฟซผู้ใช้แบบกราฟิก) พวกเขาคือ หมายถึงใช้เพื่อแสดงข้อมูลและการดำเนินการที่มีอยู่ในอินเทอร์เฟซด้านล่างโดยใช้ชุดของรูปภาพและวัตถุกราฟิก. การใช้งานหลักประกอบด้วย จัดเตรียมสภาพแวดล้อมภาพที่เรียบง่ายเพื่อให้สามารถสื่อสารกับระบบปฏิบัติการของเครื่องหรือคอมพิวเตอร์ได้

โดยปกติเราดำเนินการผ่านการโต้ตอบโดยตรงกับอุปกรณ์นั่นคือโดยการพิมพ์คำสั่งหรือเรียกใช้สคริปต์ด้วยแป้นพิมพ์ และ GUI กลายเป็นวิวัฒนาการของบรรทัดคำสั่งของระบบปฏิบัติการแรก และกลายเป็นชิ้นส่วนพื้นฐานในสภาพแวดล้อมกราฟิก

และในบริบทของ กระบวนการปฏิสัมพันธ์ระหว่างมนุษย์กับคอมพิวเตอร์GUI เป็นสื่อเทคโนโลยีเชิงโต้ตอบที่ช่วยให้เราใช้งานและการกำหนดบริบทกราฟิกของภาษาภาพการโต้ตอบกับระบบคอมพิวเตอร์

การใช้อินเทอร์เฟซแบบกราฟิกทำให้เรามีข้อดีและข้อเสียเช่น:

ข้อดี: อำนวยความสะดวกในการจัดการขั้นตอนแสดงแต่ละคำสั่งบนหน้าจอผ่านรูปภาพหรือวัตถุจัดเตรียมกลไกการควบคุมที่เป็นมาตรฐานเช่นหน้าต่างและกล่องโต้ตอบให้กับผู้ใช้อนุญาตให้ผู้ใช้โต้ตอบกับระบบได้ง่ายขึ้น

ท่ามกลางข้อเสีย: ใช้ทรัพยากรระบบปฏิบัติการความซับซ้อนเวลาในการพัฒนาและค่าใช้จ่ายในการพัฒนาดังกล่าวมากขึ้น

หากคุณต้องการทราบข้อมูลเพิ่มเติมเกี่ยวกับการสร้างอินเทอร์เฟซใหม่และสวยงามยิ่งขึ้นใน Terminal หรือบนเดสก์ท็อปขอแนะนำให้คุณเรียนรู้เกี่ยวกับคำสั่งบางอย่างที่ใช้ในการสร้างหน้าต่างโต้ตอบที่มีความสามารถในการรับหรือให้ข้อมูลที่ดำเนินการได้ด้วยสคริปต์ทุบตีเช่น เช่น:

บทสนทนา: ใน คู่มือการใช้งานกล่องโต้ตอบ ทำให้เรามีตัวเลือกต่างๆที่คุณมี

Gxข้อความ: ใน คู่มือ Gxmessage ทำให้เรามีตัวเลือกต่างๆที่คุณมี

ซีนิตี้: ใน คู่มือ Zenity ทำให้เรามีตัวเลือกต่างๆที่คุณมี

และหากคุณต้องการมอบสัมผัสที่พิเศษยิ่งขึ้นและโต้ตอบกับสคริปต์ (โปรแกรม) ของคุณด้วย Bash Shell หรืออื่น ๆ เปลือก ฉันขอแนะนำโปรแกรมอื่น ๆ เหล่านี้ซึ่งเมื่อใช้งานได้ดีสามารถช่วยคุณสร้างสิ่งมหัศจรรย์ที่แท้จริงได้โดยไม่ต้องมีความเชี่ยวชาญมากนักในปัญหา Shell Scripting ในบรรดาโปรแกรมเหล่านี้เรามี:

  • แจ้ง - ส่ง: คำสั่งที่มีประโยชน์มากในการแจ้งเตือนเหตุการณ์ต่างๆเช่นการแจ้งเตือนเมื่อมีอีเมลมาถึงผู้ติดต่อจะออนไลน์และแจ้งเตือนงานต่างๆ 
  • ข้อมูล: คำสั่งที่ใช้ในหลาย ๆ สิ่งเพื่อวางตำแหน่งเคอร์เซอร์บนหน้าจอลบข้อมูลออกจากหน้าจอรู้จำนวนบรรทัดและคอลัมน์บนหน้าจอวางตำแหน่งฟิลด์อย่างถูกต้องลบฟิลด์ที่อินพุตถูกตรวจพบว่าเป็นข้อผิดพลาด อย่างไรก็ตามการกำหนดพารามิเตอร์เกือบทั้งหมดของหน้าจอทำได้โดยคำสั่งนี้ 
  • ตกลง: คำสั่งที่อนุญาตให้ควบคุมการเปิดใช้งานและปุ่มปิดใช้งานของตัวอักษรตัวพิมพ์ใหญ่ / ตัวพิมพ์เล็กแป้นพิมพ์ตัวเลขและแป้นพิมพ์เลื่อนสำหรับแต่ละคอนโซลและเดสก์ท็อป

จนถึงตอนนี้ซีรี่ส์นี้!


แสดงความคิดเห็นของคุณ

อีเมล์ของคุณจะไม่ถูกเผยแพร่ ช่องที่ต้องการถูกทำเครื่องหมายด้วย *

*

*

  1. ผู้รับผิดชอบข้อมูล: Miguel ÁngelGatón
  2. วัตถุประสงค์ของข้อมูล: ควบคุมสแปมการจัดการความคิดเห็น
  3. ถูกต้องตามกฎหมาย: ความยินยอมของคุณ
  4. การสื่อสารข้อมูล: ข้อมูลจะไม่ถูกสื่อสารไปยังบุคคลที่สามยกเว้นตามข้อผูกพันทางกฎหมาย
  5. การจัดเก็บข้อมูล: ฐานข้อมูลที่โฮสต์โดย Occentus Networks (EU)
  6. สิทธิ์: คุณสามารถ จำกัด กู้คืนและลบข้อมูลของคุณได้ตลอดเวลา