Виявлення та виправлення помилок у 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