Як налагодити сценарії 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 робить це.

Примітка: вам потрібна новіша версія програми 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, повинні інсталювати універсальний двійковий випуск. На щастя, цей двійковий реліз легко встановити і не вимагає майструвати вихідний код. Щоб він працював, виконайте наведені нижче дії!

Крок 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), виявити неправильно використані команди та запропонувати виправлення. Для базового використання виконайте наступне.

По-перше, компакт-диск туди, де сценарій, який ви хочете перевірити, знаходиться на вашому ПК з Linux. У цьому підручнику наш скрипт знаходиться в ~/shell-scripts. Ваш може відрізнятися.

cd ~/shell-scripts

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

Примітка: якщо ви збираєтеся використовувати 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