셸 스크립팅을 사용하여 단계별 프로그램 빌드-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 : 포트, 임시 아웃 바운드 프록시를 구성하고 연결을 수행합니다.

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

작별 모듈


# 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 스크린 캐스트 이 모듈과 이전 모듈이 어떻게 실행되는지 보여 주므로 이전 8 개 강의에서 표시된 모든 모듈이 어떻게 작동하는지 확인하고 쉘 스크립팅 더 높은 수준이 있습니다.

스크립트 테스트 비디오

그리고 스크립트에 콘솔 사용자 인터페이스 나 그래픽 환경을 사용해야하는 이유는 무엇입니까?

우리는 기억해야합니다 그래픽 사용자 인터페이스, 또한 ~으로 알려진 GUI (그래픽 사용자 인터페이스) 아르 이미지 및 그래픽 개체 집합을 사용하여 하위 인터페이스에서 사용할 수있는 정보 및 작업을 나타내는 데 사용되는 수단. 주요 용도는 다음과 같습니다. 기계 또는 컴퓨터의 운영 체제와 통신 할 수있는 간단한 시각적 환경을 제공합니다.

일반적으로 우리는 장비와의 직접적인 상호 작용, 즉 명령을 입력하거나 키보드로 스크립트를 실행하여 작업을 수행합니다. 과 GUI는 첫 번째 운영 체제의 명령 줄의 진화로 등장 그래픽 환경의 기본 요소가되었습니다.

그리고 맥락에서 인간-컴퓨터 상호 작용 과정, GUI는 시각적 언어의 사용 및 그래픽 맥락화를 통해 컴퓨터 시스템과의 친근한 상호 작용을 가능하게하는 대화 형 기술 매체입니다.

그래픽 인터페이스를 사용하면 다음과 같은 장점과 단점이 있습니다.

장점 중 : 절차 처리 용이, 이미지 또는 개체를 통해 화면에 각 명령 표시, 사용자에게 창 및 대화 상자와 같은 표준화 된 제어 메커니즘 제공, 사용자가 시스템과보다 쉽게 ​​상호 작용할 수 있도록합니다.

단점 중 : 이러한 개발을 수행하려면 더 많은 운영 체제 리소스, 복잡성, 개발 시간 및 비용이 필요합니다.

터미널이나 데스크탑에서 새롭고 더 아름다운 인터페이스를 만드는 방법에 대해 자세히 알고 싶다면 bash 스크립트를 사용하여 실행 가능한 정보를 수신하거나 제공 할 수있는 대화 창을 구축하는 데 사용되는 몇 가지 명령에 대해 배우는 것이 좋습니다.

대화 :대화 매뉴얼 다양한 옵션을 제공합니다.

Gxmessage :Gxmessage 매뉴얼 다양한 옵션을 제공합니다.

제 니티 :Zenity 매뉴얼 다양한 옵션을 제공합니다.

스크립트 (프로그램)에 더욱 특별하고 상호 작용적인 터치를 제공하려면 배쉬 쉘 또는 다른 껍질 잘 사용하면 쉘 스크립팅 문제에 능숙하지 않고도 진정한 경이로움을 만들 수있는 다른 프로그램을 추천합니다. 이 프로그램 중 우리는 다음을 가지고 있습니다.

  • 통지-보내기 : 이메일이 도착했을 때 알림, 연락처가 온라인 상태가되며 다양한 작업을 미리 알림과 같은 이벤트 알림을 만드는 데 매우 유용한 명령입니다. 
  • tput : 화면에 커서를 위치시키고, 화면에서 데이터를 지우고, 화면의 행과 열 수를 알고, 필드를 올바르게 배치하고, 입력이 오류로 감지 된 필드를 지우는 데 사용되는 명령입니다. 어쨌든 화면의 거의 모든 매개 변수화는이 명령으로 수행됩니다. 
  • 설정 : 각 콘솔 및 데스크탑에 대해 개별적으로 대문자 / 소문자, 숫자 키보드 및 스크롤 키보드의 활성화 및 비활성화 키를 제어 할 수있는 명령입니다.

글쎄, 지금까지이 시리즈!


코멘트를 남겨주세요

귀하의 이메일 주소는 공개되지 않습니다. 필수 필드가 표시되어 있습니다 *

*

*

  1. 데이터 책임자 : Miguel Ángel Gatón
  2. 데이터의 목적 : 스팸 제어, 댓글 관리.
  3. 합법성 : 귀하의 동의
  4. 데이터 전달 : 법적 의무에 의한 경우를 제외하고 데이터는 제 XNUMX 자에게 전달되지 않습니다.
  5. 데이터 저장소 : Occentus Networks (EU)에서 호스팅하는 데이터베이스
  6. 권리 : 귀하는 언제든지 귀하의 정보를 제한, 복구 및 삭제할 수 있습니다.