GNU/Linux >> Tutoriels Linux >  >> Linux

Création de classes et d'objets à l'aide de scripts bash

Bash est un langage de script qui ne prend pas en charge la POO, vous ne pouvez donc pas. Essayez Python.

La seule autre chose que vous puissiez faire est d'avoir plusieurs tableaux, mais c'est compliqué. Utilisez l'index pour les relier.


Je me souviens donc avoir vérifié cette question et répondu il y a quelques années .. et je pensais .... QUOI !?!?!

Puis la semaine dernière, j'ai examiné de plus près la réponse de @Maxims, puis c'est devenu clair...

J'ai passé la semaine dernière à créer un transpileur de classe bash et un chargeur de classe pour l'objet de classe, avec des méthodes et d'autres goodies. Tout cela parce que je voulais créer une infrastructure d'animation de terminal :

Donc, même si ce n'est qu'un début, j'ai trouvé que c'était une aventure SUPER cool et stimulante. J'espère que mon code aidera aussi quelqu'un d'autre !!

BTW :A été testé uniquement sur MAC OS, donc quelques ajustements pourraient être nécessaires :)


Vous pouvez essayer de faire quelque chose comme ça

exemple.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.class

# 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
}

système.h

. system.class

system.class

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

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

Lien pour référence :https://github.com/mnorin/bash-scripts/tree/master/objectsLe fait est que vous ne pouvez pas créer d'objets, mais vous pouvez émuler la programmation orientée objet dans bash


Linux
  1. Explorer l'API RESTful de Podman à l'aide de Python et Bash

  2. Comment créer des scripts Bash à l'aide de variables externes et de scripts intégrés

  3. Script bash (I)

  4. Utiliser et dans la boucle while de Bash

  5. créer un répertoire à partir du nom de fichier et déplacer bash

Bash Beginner Series #5 :Utilisation des opérateurs arithmétiques dans les scripts Bash

Bash Scripting Part6 - Créer et utiliser des fonctions Bash

Linux Bash Scripting Part5 - Signaux et tâches

Bash Scripting Part2 - Boucles For et While avec exemples

Comment :Programmation orientée objet - Plus avec les classes et les objets

Bash Scripting :comment générer et formater du texte sur le shell Linux