Shellcheck - Alat yang menunjukkan peringatan dan saran untuk skrip shell

Shellcheck - Alat yang menunjukkan peringatan dan saran untuk skrip shell

Kerang adalah alat analisis statis yang menunjukkan peringatan dan saran tentang kode buruk dalam skrip shell bash/sh. Ini dapat digunakan dalam beberapa cara: dari web dengan menempelkan skrip shell Anda di editor online (ACE - editor kode mandiri yang ditulis dalam JavaScript) di https: // www.kerang.net (selalu disinkronkan ke komitmen git terbaru, dan merupakan cara paling sederhana untuk memberikan gaji) untuk umpan balik instan.

Atau, Anda dapat menginstalnya di mesin Anda dan menjalankannya dari terminal, mengintegrasikannya dengan editor teks Anda serta di suite build atau uji Anda.

Ada tiga hal yang dilakukan Shellcheck terutama:

  • Ini menunjukkan dan menjelaskan masalah sintaks pemula yang khas yang menyebabkan shell memberikan pesan kesalahan samar.
  • Ini menunjukkan dan menjelaskan masalah semantik tingkat menengah yang menyebabkan cangkang berperilaku aneh dan kontra-intuitif.
  • Ini juga menunjukkan peringatan halus, kasus sudut dan jebakan yang dapat menyebabkan skrip kerja pengguna tingkat lanjut gagal dalam keadaan mendatang.

Di artikel ini, kami akan menunjukkan cara menginstal dan menggunakan shellcheck dalam berbagai cara untuk menemukan bug atau kode buruk di skrip shell Anda di Linux.

Cara menginstal dan menggunakan shellcheck di linux

Kerang dapat dengan mudah diinstal secara lokal melalui manajer paket Anda seperti yang ditunjukkan.

Di debian/ubuntu

# apt-get install shellcheck 

Di rhel/centos

# yum -y install epel -rilis # yum install shellcheck 

Di Fedora

# DNF Instal Shellcheck 

Setelah kerang terpasang, mari kita lihat cara menggunakan kerang dalam berbagai metode yang kami sebutkan sebelumnya.

Menggunakan kerang dari web

Pergi ke https: // www.kerang.net dan tempel skrip Anda di editor ACE yang disediakan, Anda akan melihat output di bagian bawah editor seperti yang ditunjukkan pada tangkapan layar di bawah ini.

Dalam contoh berikut, skrip test shell terdiri dari baris berikut:

#!/bin/bash #declare variabel minargs = 2 e_notroot = 50 e_minargs = 100 #echo nilai variabel gema $ mings gema $ e_nonroot keluar 0; 
Shellcheck - Alat Analisis Skrip Shell Online

Dari tangkapan layar di atas, dua variabel pertama E_notroot Dan E_minargs telah dinyatakan tetapi tidak digunakan, Shellcheck melaporkan ini sebagai "kesalahan sugestif":

Sc2034: e_notroot tampaknya tidak digunakan. Verifikasi atau ekspornya. Sc2034: e_minargs tampaknya tidak digunakan. Verifikasi atau ekspornya. 

Kemudian kedua, nama yang salah (dalam pernyataannya echo $ e_nonroot) sudah terbiasa Echo Variable E_Notroot, Itulah sebabnya kerang menunjukkan kesalahan:

SC2153: Kemungkinan salah mengeja: e_nonroot mungkin tidak ditetapkan, tetapi e_notroot adalah 

Sekali lagi ketika Anda melihat perintah gema, variabel belum dikutip ganda (membantu mencegah globbing dan pemisahan kata), oleh karena itu pemeriksaan shell menunjukkan peringatan:

SC2086: Kutipan ganda untuk mencegah globbing dan pemisahan kata. 

Menggunakan kerang dari terminal

Anda juga dapat menjalankan shellcheck dari baris perintah, kami akan menggunakan skrip shell yang sama di atas sebagai berikut:

$ tes shellcheck.SH 
Shellcheck - Memeriksa kode buruk dalam skrip shell

Menggunakan kerang dari editor teks

Anda juga dapat melihat Kerang Saran dan peringatan langsung dalam berbagai editor, ini mungkin cara yang lebih efisien untuk menggunakan kerang, setelah Anda menyimpan file, itu menunjukkan kesalahan dalam kode.

Di dalam Vim, Gunakan ale atau sintastik (kami akan menggunakan ini):

Mulailah dengan menginstal Patogen sehingga mudah untuk menginstal sintastik. Jalankan perintah di bawah ini untuk mendapatkan patogen.vim file dan direktori yang dibutuhkan:

# mkdir -p ~/.vim/autoload ~/.vim/bundle && curl -lsso ~/.vim/autoload/patogen.vim https: // tpo.PE/Patogen.vim 

Kemudian tambahkan ini ke Anda ~/.Vimrc mengajukan:

Jalankan patogen#infect () 

Setelah Anda memasang patogen, dan Anda sekarang dapat memasukkan sintastik ~/.vim/bundel sebagai berikut:

# CD ~/.vim/bundle && git clone ---depth = 1 https: // github.com/vim-sintastik/sintastik.git 

Selanjutnya, tutup vim dan mulai kembali untuk memuatnya kembali, lalu ketik perintah di bawah ini:

: Helptags 

Jika semuanya berjalan dengan baik, Anda harus melakukannya Kerang terintegrasi dengan Vim, Tangkapan layar berikut menunjukkan cara kerjanya menggunakan skrip yang sama di atas.

Periksa kode skrip shell yang buruk di vim

Jika Anda mendapatkan kesalahan setelah mengikuti langkah -langkah di atas, maka Anda mungkin tidak menginstal Patogen benar. Rep ulang tetapi ini memastikan bahwa Anda melakukan hal berikut:

  • Menciptakan kedua ~/.VIM/AUTOLOAD Dan ~/.vim/bundel direktori.
  • Menambahkan garis Execute Patogen#Infect () ke Anda ~/.Vimrc mengajukan.
  • Apakah klon git sintastik di dalam ~/.vim/bundel.
  • Gunakan izin yang tepat untuk mengakses semua direktori di atas.

Anda juga dapat menggunakan editor lain untuk memeriksa kode buruk di skrip shell seperti:

  • Di dalam Emacs, menggunakan Flycheck.
  • Di Sublime, mempekerjakan sublimelinter.
  • Dalam atom, manfaatkan linter.
  • Di sebagian besar editor lainnya, gunakan kompatibilitas kesalahan GCC.

Catatan: Gunakan galeri kode buruk untuk melakukan lebih banyak kerang.

Repositori GitHub Shellcheck: https: // github.com/koalaman/kerang

Itu dia! Di artikel ini, kami menunjukkan cara menginstal dan menggunakan Kerang Untuk menemukan bug atau kode buruk di skrip shell Anda di Linux. Bagikan pemikiran Anda dengan kami melalui bagian komentar di bawah ini.

Apakah Anda tahu alat serupa lainnya di luar sana? Jika ya, maka bagikan info tentang mereka di komentar juga.