This is ctypes.sh, a foreign function interface for bash.
ctypes.sh is a bash plugin that provides a foreign function interface directly
in your shell. In other words, it allows you to call routines in shared
libraries from within bash.
A (very) simple example will help illustrate:
$ dlcall puts "hello, world"
hello, world
# A more complex example, use libm to calculate sin(PI/2)
$ dlopen libm.so.6
0x172ebf0
$ dlcall -r double sin double:1.57079632679489661923
double:1.000000ctypes.sh can extend bash scripts to accomplish tasks that were previously
impossible, or would require external helpers to be written.
ctypes.sh makes it possible to use
GTK+ natively in
your shell scripts, or write a high-performance http daemon.
See more examples here
ctypes.sh is dependent on the following libraries and programs:
- libffi
 - bash
 - libelf (optional)
 - elfutils (optional)
 - libdwarf / libdw (optional)
 
For recent Fedora, this should be enough:
sudo yum install elfutils-devel dnf-utils
Now you can use the debuginfo-install command to install debugging symbols for automatic structure support.
For recent Ubuntu, this should be enough:
sudo apt install autoconf libltdl-dev libffi-dev libelf-dev elfutils libdw-dev
If you want to use automatic struct support (recommended), you should also make you have ddebs available.
ctypes.sh can be installed from source like this:
$ git clone https://github.com/taviso/ctypes.sh.git
$ cd ctypes.sh
$ ./autogen.sh
$ ./configure
$ make
$ [sudo] make installBy default ctypes.sh is installed into /usr/local/bin and
/usr/local/lib. You can overload the prefix path by defining the
PREFIX environment variable before installing.
$ PREFIX=$HOME make installsource ctypes.sh
puts () {
  dlcall puts "$@"
  return $?
}
puts "hello, world"- "that's disgusting"
 - "this has got to stop"
 - "you've gone too far with this"
 - "is this a joke?"
 - "I never knew the c could stand for Cthulhu."
 
You can read more about ctypes.sh and see it in action on the Wiki