Shell Scripting - Part 8 kullanarak programınızı adım adım oluşturun

Bir kere daha karşılama buna yeni ders (# 8) del Kurs (Eğitim) üzerinde Kabuk Komut Dosyası ”. Yukarıda 7 dersleri Belirli işlevlere sahip belirli kod modüllerinin (bölümlerinin) nasıl oluşturulacağını ve / veya nasıl oluşturulacağını öğrendik.  Bash Kabuğu kullanarak Kabuk Komut Dosyası Oluşturma performans tercümanı olarak. Şimdiye kadarki bu modüller:

Kabuk Betiği

E gitmek önceki gönderi (ders 7) aşağıdaki bağlantıya basın:

Bu da sekizinci (8) Öte yandan, birkaç modülün yapımına odaklanacağız, bunlar aşağıdaki gibidir:

PROXY KONFİGÜRASYON MODÜLÜ:


# 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

Bu modülün işlevi, programa konsolun internet bağlantısı gerektiren görevleri gerçekleştirmesi için bir proxy gerektirdiğini belirtmektir. Eğer sen hiçbir şey ifade etmiyor (Anahtar Keşfet herhangi bir IP koymadan) program, proxy gerekmezaksi halde belirtmelisiniz IP: PORT, geçici bir giden proxy yapılandırması ve bağlantı gerçekleştirmesi için.

Selección_001

HOŞ GELDİNİZ MODÜLÜ


# 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
             

Bu modülün işlevi, bir Hoş geldiniz başlığı alfasayısal ve alfanümerik olmayan karakterlerle manuel olarak tasarlanmış kullanıcıya. Ardından, terminal başına bir bilgi mesajı penceresi Diyalog ve son olarak bir sonraki modüle giden sonraki adımı kontrol etmek için bir ilerleme çubuğu.

Selección_002

Selección_003

Selección_004

KULLANICI ARAYÜZÜ SEÇİM MODÜLÜ


# 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

Bu modülün işlevi, hem klavye hem de farenin kullanımıyla bir seçenek seçmeye izin veren bir menü tipi pencere oluşturmaktır. Her seçenek şunları yapabilir: bir komut komutu, bir modül, bir işlev veya başka bir komut dosyası yürütün. Bu özel durumda, bir değişkende bir değer depolamak o zaman izin verecek içeriğine göre bir sıraya karar verir.

Selección_005

Selección_006

Selección_007

EK MODÜLLER İÇİN SEÇİM VE UYGULAMA MODÜLÜ


# 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
       

Bu modülün işlevi, daha önce bir değişkende saklanan bir değere dayalı olarak önceden tanımlanmış bir seçeneği yürütmektir. Bu durumda, bu değişken yalnızca etkinlikleri gerçekleştirmeye devam etme arasında bir seçimi tetikleyecektir. komutlar içeren konsol ve iletişim kutusu ile grafik arayüzler aracılığıyla ó Zenity ve Gxmessage ile Masaüstü Ortamı için grafik arayüzler aracılığıyla.

Selección_008

Selección_009

Selección_010

Selección_010

Selección_011

FARWELL MODÜLÜ


# 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               

Bu modülün işlevi, veda konsolundan bir mesaj göstermek ve bunun başarılı yürütme dosyasını silmektir.

Aşağıda Ekran yayınlama önceki 8 derste gösterilen tüm modüllerin nasıl çalıştığını kontrol edebilmeleri ve güçlerini onaylayabilmeleri için bu modüllerin ve önceki modüllerin nasıl yürütüldüğü burada gösterilir. Kabuk Betiği daha yüksek bir seviyeye sahiptir:

Komut Dosyası Test Videosu

Ve Script'imiz için neden konsol kullanıcı arayüzlerini veya grafik ortamını kullanmalıyız?

Bunu hatırlamalıyız grafik kullanıcı arayüzleri, Ayrıca şöyle bilinir GUI (Grafik Kullanıcı Arayüzü) onlar bir dizi görüntü ve grafik nesnesi kullanarak alt arayüzde bulunan bilgi ve eylemleri temsil etmek için kullanılan araçlar. Ana kullanımı şunlardan oluşur: bir makinenin veya bilgisayarın işletim sistemiyle iletişime izin vermek için basit bir görsel ortam sağlar.

İşlemleri genellikle ekipmanla doğrudan etkileşim yoluyla, yani komutlar yazarak veya klavye ile bir komut dosyası çalıştırarak gerçekleştiririz. VE GUI'ler, ilk işletim sistemlerinin komut satırının bir evrimi olarak ortaya çıkıyor ve grafik ortamında temel parça haline gelmek.

Ve bağlamında insan-bilgisayar etkileşim süreciGUI, görsel dilin kullanımı ve grafik bağlamsallaştırması yoluyla, bir bilgisayar sistemiyle dostça bir etkileşim kurmamızı sağlayan etkileşimli teknolojik araçtır.

Grafik arayüzleri kullanmak bize aşağıdaki gibi avantajlar ve dezavantajlar sağlar:

Avantajlar arasında: Prosedürlerin işlenmesini kolaylaştırın, Ekrandaki her komutu bir görüntü veya nesne aracılığıyla görüntüleyin, Kullanıcıya pencereler ve iletişim kutuları gibi standartlaştırılmış kontrol mekanizmaları sağlayın, Kullanıcının sistemle daha kolay bir şekilde etkileşime girmesine izin verin.

Dezavantajlar arasında: Daha fazla işletim sistemi kaynağı, karmaşıklık, geliştirme süresi ve böyle bir geliştirme yapmanın maliyetini kullanır.

Terminal'de veya Masaüstünde yeni ve daha güzel arayüzlerin nasıl oluşturulacağı hakkında daha fazla bilgi edinmek istiyorsanız, bash komut dosyalarıyla eyleme geçirilebilir bilgiler alma veya verme becerisine sahip iletişim pencereleri oluşturmak için kullanılan bazı komutları öğrenmenizi tavsiye ederim. gibi:

diyalog: In İletişim Kılavuzu bize sahip olduğunuz farklı seçenekleri sunar.

Gxmesajı: In Gxmessage Kılavuzu bize sahip olduğunuz farklı seçenekleri sunar.

Zenite: In Zenity Kılavuzu bize sahip olduğunuz farklı seçenekleri sunar.

Komut Dosyanıza (Programlar) daha da özel ve etkileşimli bir dokunuş katmak istiyorsanız, Bash kabuğu ya da başka Kabuk İyi kullanıldığında, Shell Scripting konularında çok yetenekli olmadan gerçek harikalar yaratmanıza yardımcı olabilecek bu diğer programları tavsiye ederim. Sahip olduğumuz bu programlar arasında:

  • bildir-gönder: Bir e-posta geldiğinde bildirimde bulunmak, bir kişi çevrimiçi hale getirmek ve çeşitli görevler için hatırlatıcılar yapmak gibi olaylar için bildirim yapmak için çok kullanışlı bir komut. 
  • koy: İmleci ekrana konumlandırmak, ekrandan verileri silmek, ekrandaki satır ve sütun sayısını bilmek, bir alanı doğru konumlandırmak, girişi hata olarak algılanan alanı silmek için birçok şey arasında kullanılan komut. Her neyse, ekranın neredeyse tüm parametrelendirmesi bu komutla yapılır. 
  • yerleşikler: Her konsol ve masaüstü için büyük / küçük harflerin, sayısal klavyenin ve kayan klavyenin etkinleştirme ve devre dışı bırakma tuşlarını ayrı ayrı kontrol etmeyi sağlayan komut.

Şimdiye kadar bu dizi!