Как отлаживать сценарии 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.

  Как изменить имя хоста компьютера 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 «Сообщество».

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, должны установить универсальный двоичный выпуск. К счастью, этот двоичный выпуск легко установить и не требует переделки исходного кода. Чтобы заставить его работать, выполните следующие действия!

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

Во-первых, компакт-диск со сценарием, который вы хотите проверить, находится на вашем компьютере с Linux. В этом руководстве наш сценарий находится в ~ / shell-scripts. Ваш может отличаться.

cd ~/shell-scripts

Запустите команду ls и просмотрите все файлы в текущем каталоге.

  Как сканировать открытые порты на ПК с Linux с помощью Zenmap

Примечание: если вы собираетесь использовать 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