مرة أخرى ترحيب لهذا الجديد الدرس (# 8) من دورة (تعليمي) في البرمجة النصية شل ". في ما سبق 7 lecciones تمكنا من إنشاء و / أو التعرف على كيفية إنشاء وحدات (أقسام) معينة من الرموز بوظائف محددة من خلالها البرمجة النصية باستخدام شل Bash Shell كمترجم أداء. هذه الوحدات حتى الآن هي:
للذهاب إلى المنشور السابق (الدرس 7) اضغط على الرابط التالي:
Ebben الثامنة (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: بورت، لتكوين وكيل مؤقت للخارج وإجراء الاتصال.
# 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
وظيفة هذه الوحدة هي إظهار ملف ترحيب لافتة للمستخدم المصمم يدويًا بأحرف أبجدية رقمية وغير أبجدية رقمية. ثم نافذة رسالة إعلامية لكل محطة بها حوار وأخيرًا شريط تقدم للتحكم في الخطوة التالية إلى الوحدة التالية.
# 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
تتمثل وظيفة هذه الوحدة في إنشاء نافذة من نوع القائمة تسمح بتحديد خيار باستخدام كل من لوحة المفاتيح والماوس. يمكن لكل خيار تنفيذ أمر أمر أو وحدة نمطية أو وظيفة أو برنامج نصي آخر. في هذه الحالة بالذات ، تم استخدامه ل تخزين قيمة في متغير الذي سيسمح بعد ذلك تحديد الطلب وفقًا لمحتواه.
وحدة اختيار وتنفيذ الوحدات الإضافية
# 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.
# 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
تتمثل وظيفة هذه الوحدة في إظهار رسالة بواسطة وحدة التحكم في الوداع وحذف ملف التنفيذ الناجح.
استمرارية الأمم المتحدة سكرينكست حيث يتم عرض كيفية تنفيذ هذه الوحدات والوحدات السابقة بحيث يتحققون من كيفية عمل جميع الوحدات المعروضة خلال الدروس الثمانية السابقة ، ويصادقون على قوة برمجة شل لديه مستوى أعلى:
ولماذا يجب أن نستخدم واجهات مستخدم وحدة التحكم أو بيئة رسومية لسيناريونا؟
يجب أن نتذكر ذلك واجهات المستخدم الرسومية، المعروف أيضا باسم واجهة المستخدم الرسومية (GUI) هي الوسيط المستخدم لتمثيل المعلومات والإجراءات المتاحة في الواجهة السفلية ، باستخدام مجموعة من الصور والكائنات الرسومية. استخدامه الرئيسي يتكون من توفير بيئة مرئية بسيطة للسماح بالاتصال بنظام تشغيل الجهاز أو الكمبيوتر.
عادةً ما نقوم بتنفيذ الإجراءات من خلال التفاعل المباشر مع الجهاز ، أي عن طريق كتابة الأوامر أو تنفيذ برنامج نصي باستخدام لوحة المفاتيح. و تظهر واجهات المستخدم الرسومية كتطور لسطر الأوامر لأنظمة التشغيل الأولى وأصبحت القطعة الأساسية في بيئة رسومية.
وفي سياق عملية التفاعل بين الإنسان والحاسوب، واجهة المستخدم الرسومية هي الوسيلة التكنولوجية التفاعلية التي تمكننا ، من خلال استخدام اللغة المرئية ووضعها في سياقها الرسومي ، من التفاعل الودي مع نظام الكمبيوتر.
يوفر لنا استخدام الواجهات الرسومية مزايا وعيوب ، مثل:
من بين المزايا: تسهيل معالجة الإجراءات ، عرض كل أمر على الشاشة من خلال صورة أو كائن ، توفير آليات تحكم موحدة مثل النوافذ ومربعات الحوار للمستخدم ، والسماح للمستخدم بالتفاعل مع النظام بطريقة أسهل.
من بين العيوب: يستخدم المزيد من موارد نظام التشغيل ، والتعقيد ، ووقت التطوير ، وتكلفة القيام بهذا التطوير.
إذا كنت تريد معرفة المزيد حول كيفية إنشاء واجهات جديدة وأكثر جمالًا في Terminal أو على سطح المكتب ، فإنني أوصيك بالتعرف على بعض الأوامر المستخدمة لإنشاء نوافذ حوار مع القدرة على تلقي أو إعطاء معلومات قابلة للتنفيذ باستخدام البرامج النصية bash ، مثل مثل:
الحوار: في دليل الحوار يعطينا الخيارات المختلفة التي لديك.
رسالة Gx: في دليل Gxmessage يعطينا الخيارات المختلفة التي لديك.
زينتي: في دليل Zenity يعطينا الخيارات المختلفة التي لديك.
وإذا كنت ترغب في إضفاء لمسة خاصة وتفاعلية على البرنامج النصي (البرامج) الخاص بك إما باستخدام باش شل أو غيرها قذيفة أوصي بهذه البرامج الأخرى ، التي تُستخدم جيدًا ، يمكن أن تساعدك في إنشاء عجائب حقيقية دون أن تكون ماهرًا جدًا في مشكلات البرمجة النصية لـ Shell. من بين هذه البرامج لدينا:
- إرسال الإخطار: أمر مفيد للغاية لعمل إشعارات لأحداث مثل الإخطار عند وصول بريد إلكتروني ، يتم وضع جهة اتصال على الإنترنت وتذكير بمهام مختلفة.
- وضع: الأمر الذي يتم استخدامه من بين أشياء كثيرة لوضع المؤشر على الشاشة ، ومسح البيانات من الشاشة ، ومعرفة عدد الأسطر والأعمدة على الشاشة ، ووضع الحقل بشكل صحيح ، ومسح الحقل الذي تم اكتشاف إدخاله على أنه خطأ. على أي حال ، يتم تنفيذ كل معلمات الشاشة تقريبًا بواسطة هذا الأمر.
- سيتليدز: الأمر الذي يسمح بالتحكم في مفاتيح التنشيط وإلغاء التنشيط للأحرف الكبيرة / الصغيرة ولوحة المفاتيح الرقمية ولوحة المفاتيح القابلة للتمرير بشكل فردي لكل وحدة تحكم وسطح مكتب.
حسنًا ، حتى الآن هذه السلسلة!