בנה את התוכנית שלך שלב אחר שלב באמצעות Shell Scripting - חלק 8

שוב פעם קבלת פן לחדש הזה שיעור (מס '8) דל קורס (הדרכה) על Scripting Shell ". באמור לעיל 7 שיעורים הצלחנו ליצור ו / או ללמוד כיצד ליצור מודולים (קטעים) מסוימים של קודים עם פונקציות ספציפיות באמצעות  סקריפט של מעטפת באמצעות Bash Shell כמתורגמן להופעה. המודולים האלה עד כה הם:

מעטפת Scripting

ללכת ל פוסט קודם (שיעור 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

תפקידו של מודול זה לציין בפני התוכנית כי המסוף לביצוע משימות הדורשות קישוריות לאינטרנט דורש שרת proxy. אם אתה לא מציין שום דבר (מַפְתֵחַ זן מבלי לשים כל IP) התוכנית תניח זאת אין צורך באישור פרוקסי, אחרת עליכם לציין א IP: נמל, כדי שהוא יגדיר proxy זמני יוצא ויבצע קישוריות.

בחירה_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
             

תפקידו של מודול זה הוא להראות א באנר קבלת פנים למשתמש שתוכנן ידנית עם תווים אלפאנומריים ולא אלפאנומריים. ואז חלון הודעות מידע למסוף עם דיאלוג ולבסוף סרגל התקדמות לשליטה בשלב הבא למודול הבא.

בחירה_002

בחירה_003

בחירה_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

תפקידו של מודול זה הוא ליצור חלון מסוג תפריט המאפשר בחירה באפשרות בעזרת המקלדת והעכבר כאחד. כל אפשרות יכולה לבצע פקודת פקודה, מודול, פונקציה או סקריפט אחר. במקרה הספציפי הזה, זה היה רגיל אחסן ערך במשתנה אשר יאפשר לאחר מכן להחליט על סדר לפי תוכנו.

בחירה_005

בחירה_006

בחירה_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.

בחירה_008

בחירה_009

בחירה_010

בחירה_010

בחירה_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               

תפקידו של מודול זה הוא להציג הודעה על ידי מסוף הפרידה ולמחוק את קובץ הביצוע המוצלח של אותו.

מתחת לא Screencast שם מוצג כיצד המבוצעים המודולים הללו והקודמים, כך שהם יכולים לבדוק כיצד פועלים כל המודולים שהוצגו במהלך 8 השיעורים הקודמים, ולאשר את כוחם של מעטפת Scripting יש רמה גבוהה יותר:

סרטון מבחן סקריפט

ולמה עלינו להשתמש בממשקי משתמש בקונסולה או בסביבה גרפית לתסריט שלנו?

עלינו לזכור זאת ממשקי משתמש גרפיים, ידוע גם כ GUI (ממשק משתמש גרפי) הם הם אמצעים המשמשים לייצוג המידע והפעולות הקיימות בממשק התחתון, באמצעות קבוצת תמונות ואובייקטים גרפיים. השימוש העיקרי בו מורכב מ לספק סביבה חזותית פשוטה המאפשרת תקשורת עם מערכת ההפעלה של מכונה או מחשב.

בדרך כלל אנו מבצעים פעולות באמצעות אינטראקציה ישירה עם הציוד, כלומר על ידי הקלדת פקודות או ביצוע סקריפט באמצעות המקלדת. AND GUIs מופיעים כאבולוציה של שורת הפקודה של מערכות ההפעלה הראשונות והופך לחתיכת היסוד בסביבה גרפית.

ובהקשר של תהליך אינטראקציה בין אדם למחשב, ה- GUI הוא המדיום הטכנולוגי האינטראקטיבי המאפשר לנו, באמצעות שימוש והקשר גרפי של שפה חזותית, אינטראקציה ידידותית עם מערכת מחשב.

שימוש בממשקים גרפיים מספק לנו יתרונות וחסרונות, כגון:

בין היתרונות: להקל על הטיפול בפרוצדורות, להציג כל פקודה על המסך דרך תמונה או אובייקט, לספק מנגנוני בקרה סטנדרטיים כגון חלונות ותיבות דו-שיח למשתמש, אפשר למשתמש לתקשר עם המערכת בצורה קלה יותר.

בין החסרונות: היא משתמשת במשאבי מערכת הפעלה רבים יותר, מורכבות, זמן פיתוח ועלות ביצוע פיתוח כזה.

אם אתה רוצה לדעת יותר כיצד ליצור ממשקים חדשים ויפים יותר בטרמינל או בשולחן העבודה, אני ממליץ לך ללמוד על כמה פקודות המשמשות לבניית חלונות דו-שיח עם היכולת לקבל או לתת מידע בר-פעולה עם סקריפטים bash, כגון כפי ש:

שיח: ב מדריך דיאלוג נותן לנו את האפשרויות השונות שיש לך.

gxmessage: ב מדריך Gxmessage נותן לנו את האפשרויות השונות שיש לך.

זניטי: ב מדריך זניטי נותן לנו את האפשרויות השונות שיש לך.

ואם אתה רוצה לתת מגע מיוחד ואינטראקטיבי עוד יותר לסקריפט שלך (תוכניות) או עם מעטפת בש או אחר פָּגָז אני ממליץ על תוכנות אחרות אלה, שכאשר משתמשים בהן היטב, יכולות לעזור לך ליצור פלאים אמיתיים מבלי להיות מיומנים מאוד בסוגיות Scripting של Shell. בין התוכניות הללו יש לנו:

  • להודיע ​​/ לשלוח: פקודה שימושית מאוד לבצע התראות על אירועים כמו הודעה מתי מגיע דוא"ל, איש קשר מוצג ברשת ומתן תזכורות למשימות שונות. 
  • לָשִׂים: פקודה המשמשת בין דברים רבים למיקום הסמן על המסך, למחיקת נתונים מהמסך, לדעת מספר השורות והעמודות על המסך, מיקום נכון של שדה, מחיקת שדה שהקלט שלו זוהה כשגיאה. בכל מקרה, כמעט כל הפרמטרים של המסך נעשים על ידי פקודה זו. 
  • סידורים: פקודה המאפשרת לשלוט במקשי ההפעלה וההפעלה של האותיות הקטנות / הקטנות, המקלדת המספרית ומקלדת הגלילה בנפרד לכל קונסולה ושולחן עבודה.

ובכן, עד כאן הסדרה הזו!