Langsung ke konten utama

Menjalankan Perintah Bahasa Pemrograman Lain Pada Bash




Saat kita sedang membangun sebuah runner/script menggunakan bahasa Bash, ada kalanya kita membutuhkan sebuah fitur yang hanya ada pada bahasa pemrograman lain. Misalkan saja saya ingin terhubung ke OpenVPN management console dan mengeksekusi perintah status di satu waktu. Sejauh yang dapat saya pahami, hal tersebut dapat dicapai menggunakan bahasa pemrograman Python.

Hal ini dapat dilakukan dengan cara membuat file baru dan mendeskripsikan python sebagai intrepeter kemudian menyimpannya dengan nama misalkan contoh.py. Selanjutnya kita dapat memanggil script tersebut sebagaimana ./contoh.py lalu output dari aplikasi tersebut akan keluar.


Hal ini menurut saya kurang efisien serta kurang rapi. Pasalnya, file script utama akan bergantung pada file script lainnya yang intepreternya berbeda. Padahal Bash sering kali ditulis pada file tunggal dan langsung bisa dijalankan bergantung pada file lain.

Akhirnya saya menemukan solusi dimana penggunaan bahasa pemrograman lain dapat dijalankan di dalam file script Bash itu sendiri. Yaitu dengan cara memanfaatkan fitur heredoc. Fitur heredoc memungkinkan kita menjalankan runtutan perintah (code) pada mode cli yang sedang berjalan. Lebih jelasnya berikut sintaksnya:

# intepreter cli <<EOF
tulis sintaks pemrograman lain disini
EOF 

Apabila kita menggunakan Python sebagai intepreter, maka berikut sintaks contohnya:

# python3 - <<EOF
print("hello world!")
EOF

Berikut adalah contohnya:



Tepat setelah anda menutup closure dari heredoc dan menekan enter, maka script langsung dijalankan.

Anda juga dapat menyimpan dari output tersebut ke dalam sebuah variable yang selanjutnya dapat diolah. Berikut contohnya:



Beberapa pemrograman lain juga bisa dijalankan seperti contoh diatas misalkan PHP. Catatan lain yaitu anda tidak perlu terjebak dengan closure dari heredoc. Heredoc tidak membatasi closure yang digunakan. Sebagai contoh saya menggunakan EOF . Yang terpenting clousure yang digunakan harus kata yang sama dan pada clousure penutup tidak boleh diawali dengan karakter apapun (termasuk spasi).

Sayangnya, fitur ini hanya terbatas pada bahasa pemrograman yang berjalan melalui intepreter saja. Bahasa pemrograman lain yang membutuhkan kompilasi tidak dapat menggunakan fitur ini.




Komentar

Postingan populer dari blog ini

Hubungan Manis antara Conan Edogawa dan Haibara Ai.

( Hubungan Manis antara Conan Edogawa dan Haibara Ai)  Halo para Conaners, tahu kenyataan unik nggak. Ternyata Haibara Ai tuh demen lho sama Conan Edogawa. Tapi dia berusaha menyembunyikannya lantaran dia udah tau kalo Conan (Shinichi) tuh suka dan cinta sama Ran. Haibara yang kita ketahui mempunyai kepribadian dingin ini, tak gampang putus asa nih buat nunjukin kegigihannya untuk mendapatkan perhatian dari Conan. Yuk kita lihat, usaha apa saja yang dilakukan Haibara untuk menaklukan Conan :

Live Streaming ke Banyak Media Sosial

Beberapa dekade terakhir, banyak sekali para gamer yang "nyambi" cari uang dengan melakukan live stream di media sosial terutama Facebook. Sebenarnya saya juga mulai kesel karena para fans live streamer sering membagikan live streaming-nya ke grup Facebook. Sehingga grup Facebook yang awalnya diperuntukkan sebagai media diskusi malah jadi ajang pencarian views. Spam dan annoying banget.

Instalasi FreeRADIUS ft. daloRADIUS | [UPDATE - Study case pada Debian Buster]

NOTE: Artikel ini telah mengalami perubahan. Sebelumnya, versi sistem operasi yang saya gunakan adalah Debian Wheezy. Dengan menggunakan Debian Buster beberapa versi package  juga ikut berubah. Update package akan saya beri warna font merah Remote Authentication Dial-In User Service atau sering disebut dengan RADIUS adalah sebuah protokol jaringan yang melayani administrasi pengguna dalam penggunaan jaringan secara terpusat. Aspek pelayanan yang diberikan meliputi  Authetication, Authorization dan Accounting  yang kemudian disingkat AAA atau triple A . RADIUS akan sangat dibutuhkan oleh provider skala besar, misalkan  Internet Service Provider (ISP) . Untuk platform MikroTik, RADIUS sering dikenal dengan userman ( user manager ) karena tugasnya memang manajemen pengguna.