Як налагодити сценарії Linux Bash за допомогою ShellCheck

Виявлення та виправлення помилок у Bash-скриптах за допомогою ShellCheck

Чи виникають у вас труднощі з написаними Bash-скриптами для вашого Linux ПК? Замість того, щоб проводити час у незліченних обговореннях на форумах, шукаючи допомогу у програмуванні, розгляньте можливість використання ShellCheck. Цей інструмент призначений для налагодження Linux Bash-скриптів та автоматичного виявлення помилок у вашому коді.

Встановлення ShellCheck

ShellCheck є цінним інструментом, але він не входить до стандартного набору програмного забезпечення Linux. Для його використання, вам спочатку потрібно його встановити. Далі ми розглянемо способи встановлення ShellCheck з різних офіційних джерел, а також продемонструємо, як запустити його за допомогою універсального бінарного файлу.

Відкрийте вікно терміналу і оновіть перелік доступних пакетів. Потім дотримуйтесь інструкцій, що відповідають вашій операційній системі Linux.

Ubuntu

ShellCheck доступний в офіційних репозиторіях Ubuntu, що робить його встановлення досить простим. У терміналі скористайтеся менеджером пакетів Apt та встановіть останню версію ShellCheck:

sudo apt install shellcheck

Debian

У стабільній гілці Debian доступна дещо застаріла версія ShellCheck. Важливо зауважити, що через особливості формування пакетів у Debian, ця версія може бути не найновішою.

Примітка: Якщо вам потрібна новіша версія ShellCheck, зверніться до інструкції про те, як отримати більш сучасне програмне забезпечення на Debian.

sudo apt-get install shellcheck

Arch Linux

Щоб встановити ShellCheck на Arch Linux, спочатку потрібно активувати репозиторій “Community”. Для цього необхідно відредагувати файл `Pacman.conf`. Відкрийте цей файл за допомогою текстового редактора Nano:

sudo nano /etc/pacman.conf

Прокрутіть файл, щоб знайти розділ “Community”. Видаліть символ `#` (зазвичай на трьох рядках) щоб розкоментувати репозиторій. Збережіть зміни, натиснувши Ctrl + O.

Після внесення змін до `Pacman.conf`, натисніть Ctrl + X для виходу з Nano. Потім синхронізуйте Pacman, щоб отримати доступ до репозиторію “Community”:

sudo pacman -Syyuu

Нарешті, встановіть ShellCheck за допомогою команди:

sudo pacman -S shellcheck

Fedora

Для встановлення ShellCheck у Fedora Linux, відкрийте термінал і скористайтеся менеджером пакетів DNF:

sudo dnf install ShellCheck

OpenSUSE

Встановлення ShellCheck на OpenSUSE не потребує додаткових кроків, оскільки він доступний у стандартних репозиторіях дистрибутива. Для його встановлення введіть наступну команду в терміналі:

sudo zypper install ShellCheck

Універсальний спосіб для Linux

Користувачі менш поширених дистрибутивів Linux можуть скористатися універсальним бінарним файлом ShellCheck. Цей спосіб не вимагає компіляції з вихідного коду. Для встановлення виконайте наступні кроки:

Крок 1: визначте версію ShellCheck, яку ви хочете завантажити, за допомогою експорту змінної:

export scversion="stable" # або "v0.4.7", або "latest"

Крок 2: завантажте двійковий файл ShellCheck за допомогою `wget`:

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

Крок 3: розпакуйте завантажений архів TarXZ за допомогою команди `tar`:

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

Крок 4: встановіть ShellCheck на свій комп’ютер за допомогою команди `cp`:

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

Використання ShellCheck для налагодження скриптів

Основна функція ShellCheck полягає в аналізі скриптів (зазвичай Bash), виявленні некоректно використаних команд та пропозиції щодо виправлень. Ось як використовувати його в базовому варіанті:

Спочатку перейдіть до каталогу, де знаходиться скрипт, який ви хочете перевірити. У цьому прикладі, наш скрипт знаходиться в каталозі `~/shell-scripts`. У вашому випадку, шлях може бути іншим.

cd ~/shell-scripts

Виконайте команду `ls` щоб переглянути список файлів в каталозі.

Примітка: Якщо в каталозі є багато файлів різних типів, зручно використовувати `ls` разом з `grep`, щоб відфільтрувати лише файли скриптів.

ls

Або, для фільтрації, використовуйте `ls` в поєднанні з `grep`:

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

Знайдіть ім’я файлу скрипта і запустіть перевірку за допомогою ShellCheck:

shellcheck name-of-file.sh

або

shellcheck name-of-file.bash

Після виконання команди, ShellCheck виведе повідомлення про проблеми у вашому коді. Перегляньте їх, щоб покращити ваші навички програмування.

Збереження звіту ShellCheck у файл

Перегляд звіту в терміналі зручний, проте він може бути втрачений, якщо ви закриєте вікно. Щоб зберегти звіт, скористайтеся перенаправленням виводу у файл, використовуючи оператор `>>`:

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