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.

Itu saja untuk artikel kali ini.

Cheers!



Tidak ada komentar:

Posting Komentar

Terima kasih telah berkunjung.

Mencari Selisih Jumlah Hari Antara Dua Tanggal pada Bash Scripting

Beberapa waktu lalu lagi bikin projek yang melibatkan protokol HTTPS. Seperti yang kita tahu bahwa HTTPS merupakan protokol yang melindungi ...