ShellCheck - Alat yang menunjukkan amaran dan cadangan untuk skrip shell

ShellCheck - Alat yang menunjukkan amaran dan cadangan untuk skrip shell

Shellcheck adalah alat analisis statik yang menunjukkan amaran dan cadangan mengenai kod buruk dalam skrip bash/sh shell. Ia boleh digunakan dalam beberapa cara: dari web dengan menampal skrip shell anda dalam editor dalam talian (ACE - editor kod yang berdiri sendiri yang ditulis dalam JavaScript) di https: // www.Shellcheck.Bersih (ia sentiasa disegerakkan dengan komitmen git terkini, dan merupakan cara paling mudah untuk memberi shellcheck pergi) untuk maklum balas segera.

Sebagai alternatif, anda boleh memasangnya di mesin anda dan menjalankannya dari terminal, mengintegrasikannya dengan editor teks anda serta dalam suite binaan atau ujian anda.

Terdapat tiga perkara yang dilakukan oleh ShellCheck terutamanya:

  • Ia menunjukkan dan menerangkan isu sintaks pemula biasa yang menyebabkan shell memberikan mesej ralat misteri.
  • Ia menunjukkan dan menerangkan masalah semantik peringkat pertengahan yang tipikal yang menyebabkan shell berkelakuan pelik dan bertentangan secara intuitif.
  • Ia juga menunjukkan kaveat halus, kes sudut dan perangkap yang boleh menyebabkan skrip kerja pengguna yang lebih maju untuk gagal dalam keadaan akan datang.

Dalam artikel ini, kami akan menunjukkan cara memasang dan menggunakan shellcheck dalam pelbagai cara untuk mencari bug atau kod buruk dalam skrip shell anda di Linux.

Cara memasang dan menggunakan shellcheck di linux

Shellcheck boleh dipasang dengan mudah secara tempatan melalui pengurus pakej anda seperti yang ditunjukkan.

Di Debian/Ubuntu

# apt-get pemasangan shellcheck 

Pada rhel/centos

# yum -y memasang epel -release # yum pemasangan shellcheck 

Di Fedora

# DNF memasang shellcheck 

Sebaik sahaja ShellCheck dipasang, mari kita lihat cara menggunakan shellcheck dalam pelbagai kaedah yang kami sebutkan tadi.

Menggunakan shellcheck dari web

Pergi ke https: // www.Shellcheck.bersih dan tampal skrip anda di editor ace yang disediakan, anda akan melihat output di bahagian bawah editor seperti yang ditunjukkan dalam pukulan skrin di bawah.

Dalam contoh berikut, skrip shell ujian terdiri daripada baris berikut:

#!/bin/bash #declare variables minargs = 2 e_notroot = 50 e_minargs = 100 #echo nilai pembolehubah echo $ minargs echo $ e_nonroot exit 0; 
Shellcheck - Alat Analisis Skrip Shell Dalam Talian

Dari tangkapan skrin di atas, dua pembolehubah pertama E_notroot dan E_minargs telah diisytiharkan tetapi tidak digunakan, ShellCheck melaporkan ini sebagai "kesilapan yang menonjol":

SC2034: E_NOTROOT kelihatan tidak digunakan. Sahkan atau eksportnya. SC2034: e_minargs kelihatan tidak digunakan. Sahkan atau eksportnya. 

Kemudian kedua, nama yang salah (dalam pernyataan echo $ e_nonroot) digunakan untuk Echo Variable E_NOTROOT, Itulah sebabnya ShellCheck menunjukkan kesilapan:

SC2153: Kemungkinan salah ejaan: E_NONROOT mungkin tidak diberikan, tetapi E_NOTROOT adalah 

Sekali lagi apabila anda melihat perintah echo, pembolehubah belum disebut dua kali ganda (membantu mengelakkan globbing dan pemisahan perkataan), oleh itu pemeriksaan shell menunjukkan amaran:

SC2086: Petikan berganda untuk mengelakkan globbing dan pemisahan perkataan. 

Menggunakan shellcheck dari terminal

Anda juga boleh menjalankan shellcheck dari baris arahan, kami akan menggunakan skrip shell yang sama di atas seperti berikut:

$ shellcheck test.sh 
ShellCheck - cek kod buruk dalam skrip shell

Menggunakan shellcheck dari editor teks

Anda juga boleh melihat Shellcheck Cadangan dan amaran secara langsung dalam pelbagai editor, ini mungkin cara yang lebih efisien menggunakan shellcheck, sebaik sahaja anda menyimpan fail, ia menunjukkan kepada anda sebarang kesilapan dalam kod tersebut.

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

Mulakan dengan memasang Patogen Jadi mudah untuk memasang sintastik. Jalankan arahan di bawah untuk mendapatkan patogen.vim fail dan direktori yang diperlukan:

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

Kemudian tambahkan ini ke anda ~/.vimrc Fail:

Laksanakan Patogen#Jangkitan () 

Sebaik sahaja anda memasang patogen, dan anda kini boleh meletakkan sintastik ke dalam ~/.vim/bundle seperti berikut:

# cd ~/.vim/bundle && git clone --pth = 1 https: // github.com/vim-syntastic/syntastic.git 

Seterusnya, tutup Vim dan mulakannya semula untuk memuat semula, kemudian ketik arahan di bawah:

: Helptags 

Sekiranya semuanya berjalan lancar, anda sepatutnya Shellcheck disepadukan dengan Vim, Tangkapan skrin berikut menunjukkan bagaimana ia berfungsi menggunakan skrip yang sama di atas.

Periksa kod skrip shell buruk di vim

Sekiranya anda mendapat ralat setelah mengikuti langkah -langkah di atas, maka anda mungkin tidak memasang Patogen betul. Buat langkah -langkah tetapi ini memastikan bahawa anda melakukan perkara berikut:

  • Mencipta kedua -dua ~/.VIM/Autoload dan ~/.vim/bundle direktori.
  • Menambah garis Patogen#Jangkitan () melaksanakan ke anda ~/.vimrc fail.
  • Adakah klon sintastik git di dalam ~/.vim/bundle.
  • Gunakan kebenaran yang sesuai untuk mengakses semua direktori di atas.

Anda juga boleh menggunakan editor lain untuk memeriksa kod buruk dalam skrip shell seperti:

  • Dalam Emacs, gunakan Flycheck.
  • Dalam Sublime, Gunakan Sublimelinter.
  • Di atom, gunakan linter.
  • Di kebanyakan editor lain, gunakan keserasian ralat GCC.

Catatan: Gunakan galeri kod buruk untuk menjalankan lebih banyak shellchecking.

Shellcheck GitHub Repository: https: // github.com/koalaman/shellcheck

Itu sahaja! Dalam artikel ini, kami menunjukkan cara memasang dan menggunakan Shellcheck Untuk mencari pepijat atau kod buruk dalam skrip shell anda di Linux. Kongsi pendapat anda dengan kami melalui bahagian komen di bawah.

Adakah anda tahu alat lain yang serupa di luar sana? Jika ya, maka kongsi maklumat mengenai mereka dalam komen juga.