ShellCheck – Egy eszköz, amely figyelmeztetéseket és javaslatokat jelenít meg a Shell-szkriptekhez
A ShellCheck egy statikus elemző eszköz, amely figyelmeztetéseket és javaslatokat jelenít meg a bash/sh shell szkriptekben található rossz kóddal kapcsolatban. Többféleképpen használható: az internetről úgy, hogy beilleszti a shell szkriptjét egy online szerkesztőbe (Ace – egy JavaScriptben írt önálló kódszerkesztő) a https://www.shellcheck.net webhelyen (mindig szinkronizálva van a legújabb gittel commit, és ez a legegyszerűbb módja a ShellCheck kipróbálásának) azonnali visszajelzésért.
Alternatív megoldásként telepítheti a gépére, és futtathatja a terminálról, integrálhatja a szövegszerkesztőbe, valamint a build- vagy tesztcsomagjaiba.
A ShellCheck elsősorban három dolgot tesz:
- Rámutat és elmagyarázza azokat a tipikus kezdő szintaktikai problémákat, amelyek miatt a shell rejtélyes hibaüzeneteket ad.
- Rámutat és elmagyarázza azokat a tipikus középszintű szemantikai problémákat, amelyek miatt a shell furcsán és intuitív módon viselkedik.
- Felhívja a figyelmet azokra a finom figyelmeztetésekre, a sarkalatos esetekre és a buktatókra is, amelyek a jövőbeni körülmények között meghiúsíthatják a haladó felhasználók egyébként működő szkriptjét.
Ebben a cikkben bemutatjuk, hogyan telepítheti és használhatja a ShellCheck-et különféle módokon, hogy hibákat vagy rossz kódot találjon a shell-szkriptekben Linux alatt.
A ShellCheck telepítése és használata Linuxban
A ShellCheck egyszerűen telepíthető helyileg a csomagkezelőn keresztül, az ábrán látható módon.
Debian/Ubuntu alatt
apt-get install shellcheck
RHEL/CentOS rendszeren
yum -y install epel-release
yum install ShellCheck
Fedorán
dnf install ShellCheck
A ShellCheck telepítése után vessünk egy pillantást a ShellCheck használatára a korábban említett különféle módszerekben.
A ShellCheck használata az internetről
Látogasson el a https://www.shellcheck.net oldalra, és illessze be a szkriptet a rendelkezésre álló Ace szerkesztőbe, és a kimenetet a szerkesztő alján tekintheti meg, az alábbi képernyőképen látható módon.
A következő példában a teszthéj-szkript a következő sorokból áll:
#!/bin/bash
#declare variables
MINARGS=2
E_NOTROOT=50
E_MINARGS=100
#echo values of variables
echo $MINARGS
echo $E_NONROOT
exit 0;
A fenti képernyőképen az első két változó, az E_NOTROOT és az E_MINARGS deklarálva, de használaton kívül vannak, a ShellCheck ezeket „suggesztív hibákként” jelenti:
SC2034: E_NOTROOT appears unused. Verify it or export it.
SC2034: E_MINARGS appears unused. Verify it or export it.
Másodszor, rossz név (az echo $E_NONROOT utasításban) echo változó E_NOTROOT lett használva, ezért a ShellCheck hibát jelenít meg:
SC2153: Possible misspelling: E_NONROOT may not be assigned, but E_NOTROOT is
Ha ismét megnézzük az echo parancsokat, a változók nincsenek dupla idézőjelek között (segít megelőzni a gömbölyűséget és a szóhasadást), ezért a Shell Check figyelmeztetést jelenít meg:
SC2086: Double quote to prevent globbing and word splitting.
A ShellCheck használata a terminálból
A ShellCheck parancssorból is futtatható, a fenti shell-szkriptet használjuk a következők szerint:
shellcheck test.sh
A ShellCheck használata a szövegszerkesztőből
A ShellCheck javaslatokat és figyelmeztetéseket közvetlenül is megtekintheti számos szerkesztőben. Ez valószínűleg egy hatékonyabb módja a ShellCheck használatának, miután mentett egy fájlt, megmutatja a kódban lévő hibákat.
A Vim-ben használja az ALE-t vagy a Syntastic-ot (ezt fogjuk használni):
Kezdje a Pathogen telepítésével, hogy könnyen telepíthető legyen a szintatika. Futtassa az alábbi parancsokat a pathogen.vim fájl és a szükséges könyvtárak lekéréséhez:
mkdir -p ~/.vim/autoload ~/.vim/bundle && curl -LSso ~/.vim/autoload/pathogen.vim https://tpo.pe/pathogen.vim
Ezután adja hozzá ezt a ~/.vimrc fájlhoz:
execute pathogen#infect()
Miután telepítette a kórokozót, és most a következőképpen helyezheti el a szintasztikát a ~/.vim/bundle fájlba:
cd ~/.vim/bundle && git clone --depth=1 https://github.com/vim-syntastic/syntastic.git
Ezután zárja be a vim-et, és indítsa újra az újratöltéshez, majd írja be az alábbi parancsot:
:Helptags
Ha minden jól megy, a ShellCheck-et integrálnia kell a Vim-be. A következő képernyőképek bemutatják, hogyan működik a fenti szkript használatával.
Ha a fenti lépések végrehajtása után hibaüzenetet kap, akkor valószínűleg nem megfelelően telepítette a Pathogen programot. Ismételje meg a lépéseket, de ezzel győződjön meg arról, hogy a következőket tette:
- Létrehozta a ~/.vim/autoload és a ~/.vim/bundle könyvtárat is.
- Hozzáadta a végrehajtó patogen#infect() sort a ~/.vimrc fájlhoz.
- A szintastic git klónja a ~/.vim/bundle-en belül történt.
- Használja a megfelelő engedélyeket a fenti könyvtárak eléréséhez.
Más szerkesztőkkel is ellenőrizheti a rossz kódot a shell szkriptekben, például:
- Az Emacs rendszerben használja a Flycheck alkalmazást.
- A Sublime-ban használja a SublimeLintert.
- Az Atomban használja a Lintert.
- A legtöbb más szerkesztőben használja a GCC hibakompatibilitást.
Megjegyzés: Használja a hibás kódok galériáját további ShellChecking végrehajtásához.
ShellCheck Github Repository: https://github.com/koalaman/shellcheck
Ez az! Ebben a cikkben bemutattuk, hogyan kell telepíteni és használni a ShellCheck alkalmazást, amellyel hibákat vagy rossz kódot találhat a shell-szkriptekben Linux alatt. Ossza meg velünk gondolatait az alábbi megjegyzés részben.
Tudsz más hasonló eszközöket? Ha igen, akkor kommentben oszd meg róluk is az információkat.