Dalam panduan ini, kita akan membahas apa itu Shfmt, cara menginstal Shfmt di Linux, dan terakhir cara memformat program shell menggunakan Shfmt di Linux.
1. Pendahuluan
Jika Anda berasal dari latar belakang pemrograman, Anda mungkin mengetahui istilah-istilah seperti pemformatan, linting, dll.
Ada alat pendukung penting yang disertakan dengan setiap editor kode untuk mempermudah hidup kita saat kita membuat kode.
Demikian pula, untuk skrip shell, kami memiliki shfmt . shfmt digunakan untuk memformat, mengurai, dan menginterpretasikan skrip shell Anda. Shfmt mendukung shell Bash, mksh, dan Posix.
Shfmt sangat dapat dikonfigurasi dan dapat memformat kode Anda dalam beberapa mode dan konvensi.
Anda dapat menginstal dan menggunakan alat Shfmt dari baris perintah untuk bekerja dengan skrip shell Anda. Juga ada plugin yang tersedia di editor teks populer yang akan menggunakan shfmt untuk memformat skrip shell Anda.
2. Instal Shfmt di Linux
Shfmt tersedia sebagai aplikasi snap. Jika distribusi Anda telah menginstal snap, Anda dapat menginstal shfmt menggunakan perintah:
$ sudo snap install shfmt
Cara lain untuk menginstal Shfmt adalah dengan menggunakan perintah satu baris berikut:
$ curl -sS https://webinstall.dev/shfmt | bash
Dua metode di atas dapat digunakan terlepas dari distribusi apa yang Anda jalankan. Ada beberapa distribusi tempat Anda dapat menginstal shfmt dari repositori paketnya.
Untuk Menginstal shfmt di Alpine Linux, jalankan:
$ sudo apk add shfmt
Instal shfmt di Arch Linux, EndeavourOS dan Manjaro Linux:
$ sudo pacman -S shfmt
Instal shfmt di FreeBSD.
$ sudo pkg install devel/shfmt
$ sudo pkg install shfmt
3. Memformat program shell menggunakan Shfmt di Linux
Jika ini pertama kalinya Anda menggunakan Shfmt, mulailah dengan menjalankan help
perintah untuk mendapatkan gambaran tentang opsi yang didukung shfmt:
$ shfmt --help
Sekarang, izinkan saya menunjukkan sebuah contoh. Saya telah membuat skrip shell tanpa format yang tepat.
Perhatikan gambar di atas. Ini terlihat aneh, bukan?
Mari kita format skrip ini menggunakan shfmt
seperti di bawah ini:
$ shfmt dummy.sh
Shfmt akan mulai memformat skrip yang diberikan.
Berikut adalah output dari script di atas sebelum dan sesudah optimasi:
Dari output di atas, Anda dapat melihat skrip kami diformat dengan baik.
Anda mungkin bertanya-tanya mengapa lekukan disetel ke tab . Ini adalah default dan dapat dimodifikasi.
3.1. Indentasi Kustom
Saya selalu mengikuti dokumen gaya skrip Google Shell dan atur indentasi ke 2 spasi bukannya tab.
Untuk mengatur lekukan khusus gunakan -i
bendera. Mari kita lihat apa yang dikatakan menu bantuan tentang -i
ini bendera:
Nilai apa pun yang lebih besar dari nol diteruskan dengan -i
bendera adalah jumlah spasi yang akan digunakan untuk bermaksud.
$ shfmt -i 2 scriptname.sh
3.2. Keluaran gaya berbeda
Jika Anda memerlukan informasi tentang apa yang sebenarnya telah diformat, Anda dapat menggunakan -d
bendera. Perhatikan gambar di bawah ini, ini menunjukkan apa yang diformat dalam warna hijau dengan +
simbol.
3.3. Daftar skrip yang akan diformat
Anda dapat menggunakan -l
flag yang akan mendapatkan daftar skrip yang perlu diformat.
Untuk mendemonstrasikan ini, saya akan membuat tiga file skrip. Saya membiarkan skrip kedua dan ketiga tidak diformat. Dan saya telah memberikan banyak ruang di echo
pernyataan file ke-2 dan ke-3.
Sekarang jika saya menjalankan perintah shfmt dengan -l
flag, itu harus memilih file sampel 2 dan 3 kedua saya saja:
$ shfmt -l sample*.sh sample2.sh sample3.sh
3.4. Tulis output ke file
Secara default, Shfmt menulis output dari skrip yang diformat ke stdout, yang merupakan terminal. Jika Anda ingin menulis output ke file, Anda dapat menggunakan -w
bendera.
$ shfmt -w scriptname.sh
3.5. Temukan skrip shell di jalur
Dengan -f
flag, shfmt akan memindai direktori yang diberikan secara rekursif dan akan menemukan semua skrip shell.
Tidak masalah apakah skrip memiliki ekstensi .sh
atau tidak. Shfmt dapat mengenali semua skrip shell meskipun tidak memiliki ekstensi.
$ shfmt -f /home/ostechnix /home/ostechnix/.config/envman/load.sh /home/ostechnix/.local/bin/webi /home/ostechnix/Downloads/sampleshell /home/ostechnix/dummy.sh
3.6. Shfmt juga bisa mendeteksi kesalahan
Shfmt tidak hanya untuk memformat skrip shell. Itu juga dapat menemukan kesalahan dalam skrip juga.
Lihatlah gambar di bawah ini, di mana kurung kurawal saya untuk menghentikan fungsi tersebut hilang dan shfmt menemukannya.
Anda juga dapat menggunakan fitur pemeriksaan sintaks bawaan bash dengan menggunakan -n
bendera yang akan memvalidasi kode Anda dan
daftar semua kesalahan.
$ bash -vn scriptname.sh
3.7. Shfmt di editor eksternal
Secara real-time, Anda dapat menggunakan salah satu editor teks pilihan Anda seperti Vim, Atom, Sublime Text, kode Vs, dll. Beberapa editor teks ini mungkin memiliki dukungan asli untuk memformat skrip bash.
Setiap editor kode memiliki plugin yang terintegrasi dengan shfmt. Buka repositori resmi GitHub (tautan diberikan di akhir) dan di bagian bawah halaman, Anda akan melihat daftar plugin untuk setiap editor teks yang menggunakan shfmt di bawahnya.
Kesimpulan
Dalam panduan ini, kita telah melihat apa itu Shfmt dan bagaimana memformat program Shell menggunakan Smfmt dengan contoh praktis. Shfmt akan menjadi alat yang sangat berguna untuk menjaga skrip Anda tetap bersih, rapi, dan teratur. Integrasikan dengan editor teks dan Anda akan memiliki alur kerja yang sangat lancar dalam membuat skrip.