Bash adalah bahasa skrip, yang tidak mendukung OOP, jadi Anda tidak bisa. Coba Python.
Satu-satunya hal lain yang dapat Anda lakukan adalah memiliki beberapa larik, tetapi itu berantakan. Gunakan indeks untuk menautkannya.
Jadi saya ingat memeriksa pertanyaan dan jawaban ini beberapa tahun yang lalu .. dan berpikir.... APA!?!?!
Kemudian minggu lalu saya melihat lebih dekat pada jawaban @Maxims dan kemudian menjadi jelas..
Saya telah menghabiskan minggu lalu dan membuat transpiler kelas bash dan pemuat kelas untuk objek kelas, dengan metode dan barang lainnya.. semua karena saya ingin membuat infrastruktur animasi terminal:
Jadi, meskipun ini baru permulaan, menurut saya ini adalah petualangan yang SANGAT keren dan menantang.. Saya harap kode saya juga dapat membantu orang lain!!
BTW:Diuji hanya pada MAC OS jadi beberapa penyesuaian mungkin diperlukan :)
Anda dapat mencoba melakukan hal seperti ini
contoh.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.kelas
# 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
}
system.h
. system.class
sistem.kelas
system.stdout.printValue(){
echo $([email protected])
}
system.stdout.printString(){
echo [email protected]
}
Tautan untuk referensi:https://github.com/mnorin/bash-scripts/tree/master/objectsIntinya adalah Anda tidak dapat membuat objek tetapi Anda dapat meniru pemrograman berorientasi objek di bash