GNU/Linux >> Tutoriales Linux >  >> Linux

Creando clases y objetos usando bash scripting

Bash es un lenguaje de secuencias de comandos, que no es compatible con OOP, por lo que no puede. Prueba Python.

La única otra cosa que podría hacer es tener varias matrices, pero eso es complicado. Utilice el índice para vincularlos.


Así que recuerdo haber revisado esta pregunta y respuesta hace unos años... y estaba pensando... ¡¿QUÉ?!?!

Luego, la semana pasada, eché un vistazo más de cerca a la respuesta de @Maxims y luego quedó claro...

Pasé la última semana y creé un transpilador de clases bash y un cargador de clases para objetos de clase, con métodos y otras cosas... todo porque quería crear una infraestructura de animación de terminal:

Entonces, si bien esto es solo el comienzo, descubrí que es una aventura SUPER genial y desafiante. ¡¡Espero que mi código también ayude a alguien más!!

Por cierto:se probó solo en MAC OS, por lo que es posible que se necesiten algunos ajustes :)


Puedes intentar hacer algo como esto

ejemplo.sh

#!/bin/bash

# include class header
. obj.h
. system.h

# create class object
obj myobject

# use object method
myobject.sayHello

# use object property
myobject.fileName = "file1"

system.stdout.printString "value is"
system.stdout.printValue myobject.fileName

obj.h

obj(){
    . <(sed "s/obj/$1/g" obj.class)
}

obj.clase

# Class named "obj" for bash Object

# property
obj_properties=()

# properties IDs
fileName=0
fileSize=1

obj.sayHello(){
    echo Hello
}

obj.property(){
    if [ "$2" == "=" ]
    then
        obj_properties[$1]=$3
    else
        echo ${obj_properties[$1]}
    fi
}

obj.fileName(){
    if [ "$1" == "=" ]
    then
        obj.property fileName = $2
    else
        obj.property fileName
    fi
}

sistema.h

. system.class

sistema.clase

system.stdout.printValue(){
    echo $([email protected])
}

system.stdout.printString(){
    echo [email protected]
}

Enlace de referencia:https://github.com/mnorin/bash-scripts/tree/master/objectsEl punto es que no puede crear objetos pero puede emular la programación orientada a objetos en bash


Linux
  1. Explorando la API RESTful de Podman usando Python y Bash

  2. Cómo crear scripts Bash usando variables externas y scripts incrustados

  3. buscar y copiar archivos usando Bash

  4. Usando y en Bash while loop

  5. creando un directorio desde el nombre del archivo y moviendo bash

Bash Beginner Series #5:Uso de operadores aritméticos en Bash Scripting

Bash Scripting Part6 - Crear y usar funciones de Bash

Linux Bash Scripting Part5 – Señales y trabajos

Bash Scripting Part2 – Bucles for y while con ejemplos

Cómo:Programación orientada a objetos:más con clases y objetos

Bash Scripting:cómo generar y formatear texto en Linux Shell