Meng-custom Perintah di Terminal Ubuntu

Beberapa waktu lalu saya mendapat kesempatan untuk ikut Grand Final Kode Indonesia di Jakarta. Kode Indonesia adalah kontes pemrograman yang diadakan oleh Kalibrr.

Berbeda dengan kontes pemrograman pada umumnya, pada kontes ini panitia tidak menyediakan komputer atau laptop untuk para finalis. Jadi para finalis dipersilakan untuk menggunakan komputernya masing-masing di Grand Final. Sebenarnya ini peraturan yang aneh karena ini membuat setiap peserta bisa jadi punya “starting-point” yang berbeda kan? misal kualitas komputer, file-file yang tersedia, dsb.

Tapi ya sudah, karena ini aturan panitia sendiri maka saya juga mencoba menyiapkan laptop saya. Hal sederhana yang saya pikirkan adalah:

Coba buat perintah sederhana untuk meng-compile sekaligus menjalankan program C++!

Tujuannya tentu untuk mempersingkat proses compile. Karena saya sendiri tidak menggunakan IDE yang bisa meng-compile program, maka cara saya biasanya untuk meng-compile file C++ adalah dengan menjalankan perintah (commands):

Lalu setelah di-compile, dijalankan dengan perintah:

Nah, misi sederhana saya adalah menyederhanakan kedua perintah di atas menjadi sebuah perintah sederhana. Begini langkah-langkahnya:

  1. Buat sebuah script file, misalnya kita beri nama customcpp.sh
  2. Pada baris pertama, tuliskan #!/bin/bash lalu tuliskan perintah yang ingin dijalankan di bawahnya seperti di bawah. Pada perintah di bawah CPPFILE adalah variabel yang menyimpan argumen yang akan diinputkan saat pemanggilan. Nantinya akan menerima nama file yang akan di-compile.
  3. Simpan file tersebut, lalu pindahkan ke /usr/local/bin, pemindahannya bisa menggnakan perintah di bawah. SCRIPTNAME adalah nama perintah yang akan dipanggil ketika script di atas di jalankan.
  4. Atur permission agar program bisa diakses

Dan selesai!

Setelah selesai, sekarang untuk mengcompile sekaligus menjalankan program C++, saya cukup mengetikkan di terminal perintah berikut:

ya.. setidaknya sedikit lebih cepat dari sebelumnya kan 😉

Sumber: