Как да отстраните грешки в Linux Bash скриптове с ShellCheck

Имате ли проблеми с Bash скрипт, който сте написали за вашия компютър с Linux? Вместо да разглеждате безброй теми в StackExchange за помощ за програмиране, помислете за използването на инструмента ShellCheck за отстраняване на грешки в Linux Bash скриптове и автоматично намиране на грешки във вашия код.

Вземете ShellCheck

ShellCheck е полезен инструмент, но не се доставя с вашата операционна система Linux от кутията. Вместо това, ако искате да го използвате, първо ще трябва да го инсталирате. В този урок ще разгледаме как да инсталирате ShellCheck от различни официални източници на софтуер. Също така ще ви покажем как да накарате програмата да работи чрез общия двоичен файл на Linux.

Отворете прозорец на терминала и актуализирайте пакетите си. След това следвайте инструкциите, които съответстват на вашата операционна система Linux.

Ubuntu

ShellCheck е в официалните източници на софтуер на Ubuntu, така че инсталирането му е доста лесно. В терминал използвайте мениджъра на пакети Apt и работете най-новата версия на ShellCheck.

sudo apt install shellcheck

Debian

Debian Stable има по-стара версия на ShellCheck, готова за инсталиране от потребителите. Имайте предвид, че тази версия е задържана поради начина, по който Debian прави нещата.

  Как да инсталирате Prusa Slicer на Linux

Забележка: искате по-нова версия на програмата ShellCheck? Следвайте нашето ръководство и научете как да получите по-модерен софтуер на Debian.

sudo apt-get install shellcheck

Arch Linux

За да получите ShellCheck на Arch Linux, първо ще трябва да активирате софтуерното хранилище „Общност“. Активирането на „Общност“ изисква редактиране на файла Pacman.conf. За да редактирате файла, отворете Pacman.conf в Nano.

sudo nano /etc/pacman.conf

Превъртете (с клавишите със стрелки) и намерете секцията „Общност“ на файла. Премахнете всички екземпляри на символа # (около три реда). След това запазете редакциите, като натиснете бутона Ctrl + O.

След като се погрижите за новите редакции на Pacman.conf, натиснете Ctrl + X, за да затворите Nano. След това повторно синхронизирайте Pacman, за да настроите достъп до хранилището на Arch Linux „Community“.

sudo pacman -Syyuu

Накрая инсталирайте ShellCheck в Arch Linux с:

sudo pacman -S shellcheck

Fedora

За да получите инструмента за анализ на скриптове ShellCheck във Fedora Linux, отворете терминал и използвайте инструмента за управление на пакети DNF.

sudo dnf install ShellCheck

OpenSUSE

Инсталирането на ShellCheck на OpenSUSE не изисква специални стъпки, тъй като е в основните софтуерни източници на дистрибуцията. За да го получите, въведете следната команда за пакет Zypper в прозорец на терминала.

sudo zypper install ShellCheck

Генеричен Linux

Потребителите на по-малко известни дистрибуции на Linux, които искат достъп до инструмента за анализ на скриптове ShellCheck, трябва да инсталират универсалната двоична версия. За щастие тази двоична версия е лесна за инсталиране и не изисква бърникане с изходния код. За да работи, следвайте стъпките по-долу!

  Как да архивирате настройките на работния плот XFCE4 на Linux

Стъпка 1: експортирайте версията на ShellCheck, която ще изтеглите, във вашата терминална среда.

export scversion="stable" # or "v0.4.7", or "latest"

Стъпка 2: като използвате инструмента за изтегляне на wget, вземете най-новата двоична версия на ShellCheck.

wget "https://storage.googleapis.com/shellcheck/shellcheck-${scversion}.linux.x86_64.tar.xz"

Стъпка 3: извлечете архива на ShellCheck TarXZ с командата tar.

tar --xz -xvf shellcheck-"${scversion}".linux.x86_64.tar.xz

Стъпка 4: инсталирайте ShellCheck на вашия компютър с Linux с командата cp.

cp shellcheck-"${scversion}"/shellcheck /usr/bin/

Скриптове за отстраняване на грешки с ShellCheck

Основната цел на ShellCheck е да преглежда скрипт (обикновено Bash), да открива неправилно използвани команди и да предлага корекции. За основна употреба направете следното.

Първо, CD до мястото, където скриптът, който искате да проверите, е на вашия компютър с Linux. В този урок нашият скрипт е в ~/shell-scripts. Вашето може да се различава.

cd ~/shell-scripts

Изпълнете командата ls и вижте всички файлове в текущата директория.

  Как да играете игри за PlayStation 2 на Linux

Забележка: ако възнамерявате да използвате ShellCheck в директория с множество типове файлове, добра идея е да комбинирате grep и ls заедно. Използването на тези две команди заедно ви позволява да филтрирате всички нескриптови файлове.

ls

Или комбинирайте с grep, за да видите само скриптови файлове.

ls | grep ".sh"
ls | grep ".bash"

Намерете името на скриптов файл в подканата ls и маркирайте името на файла с мишката. Когато сте готови, стартирайте го през ShellCheck и проверете кода си.

shellcheck name-of-file.sh

или

shellcheck name-of-file.bash

Веднага след като се изпълни командата shellcheck, тя ще открие проблеми с вашия код и ще го постави в подканата на терминала. Прочетете и научете как да подобрите програмирането си, като следвате предложенията, които ви дава.

Запазете отчета на ShellCheck във файл

Получаването на незабавен отчет в терминала за вашето bash програмиране е супер полезно, но може да го загубите, ако затворите терминала. За да избегнете загубата на вашия отчет за проверка на обвивката, препоръчваме да запишете изхода в текстов файл, като стартирате програмата в комбинация с функцията >> в терминала.

shellcheck name-of-file.sh >> ~/Documents/shellcheck-report-name-of-file.sh

или

shellcheck name-of-file.bash >> ~/Documents/shellcheck-report-name-of-file.bash

Вижте запазения си отчет в терминала чрез командата cat.

cat ~/Documents/shellcheck-report-name-of-file.sh | more

или

cat ~/Documents/shellcheck-report-name-of-file.bash | more