Pengantar ShellCheck
- ShellCheck adalah alat untuk menemukan bug dalam skrip shell.
- Dapat dipasang di lingkungan lokal melalui cabal, apt, dnf, pkg, dan brew.
- Jika Anda menempelkan skrip, ShellCheck akan menampilkan hasil analisis.
Fitur ShellCheck
- ShellCheck dapat digunakan secara bebas di bawah lisensi GPLv3.
- Didokumentasikan di ShellCheck Wiki, dan kode sumbernya dapat dilihat di GitHub.
- Sudah dipaketkan di sebagian besar distro atau package manager.
- Didukung sebagai linter terintegrasi di editor-editor utama, dan kode di repositori GitHub dapat diperiksa otomatis melalui CodeClimate, Codacy, dan CodeFactor.
- Ditulis dalam bahasa Haskell, sehingga cocok bagi pengguna yang tertarik padanya.
Ucapan terima kasih
- Menyampaikan terima kasih khusus kepada GitHub Sponsors: Gitpod, Mercedes-Benz, BashSupport Pro, per1234, WhitewaterFoundry, cavcrosby, dcminter, photostructure, Cronitor, djdefi, steve-chavez, dan lainnya.
Opini GN⁺
- Hal terpenting dari artikel ini adalah bahwa ShellCheck merupakan alat yang berguna untuk menemukan bug dalam skrip shell.
- ShellCheck gratis, didukung di berbagai platform dan editor, serta mudah digunakan, sehingga bisa menarik bagi banyak orang.
- Secara khusus, dukungan dari komunitas open source dan fakta bahwa alat ini dikembangkan dengan bahasa Haskell dapat menjadi daya tarik bagi para pengembang perangkat lunak.
1 komentar
Komentar Hacker News
Hal-hal yang perlu diperhatikan saat menulis skrip
-u(nounset) agar terjadi error saat memakai variabel yang belum dideklarasikan. Pengecualiannya adalah ketika ekspansi array membuat array kosong dianggap sebagai unbound.-n(noexec) dapat digunakan untuk mencoba eksekusi palsu (dry-run) yang mencegah perintah dijalankan.-e(errexit) juga berguna, tetapi perlu diperhatikan bahwa hanya perintah "naked" yang gagal yang akan memicu penghentian. Untuk menghindari ini, lebih disukai menambahkan|| fail "..."pada perintah.Menemukan kerentanan dalam skrip shell
$ENV_VARbisa dikendalikan melalui$((1 + ENV_VAR)), maka kode dapat disuntikkan.Shellcheck dan strictbash
Penyebutan tentang Shellcheck
Menggunakan Haskell dan Turtle
Penggunaan Shellcheck dan linter
.gitlab-ci.yml, sehingga sulit diperiksa. Dibuat wrapper untuk memeriksanya secara otomatis.Bash language server
Efek pembelajaran dari Shellcheck
/bin/shproduksi pertama dengan Shellcheck, ada hal baru yang dipelajari meskipun sudah menulis skrip sejak tahun 80-an.Rekomendasi menggunakan Bach
Shellcheck dan penanganan source/import
shmemang seperti mimpi buruk.