Bash/Shell подсказки-документация опций в Bash IDE

Категория: Bash

Настраиваем окружение для написания shell/bash-скриптов с дополнением кода, линтером (проверкой на ошибки) и подсказками-документацией для команд и опций.


Подсказки опций/аргументов bash скрипта в Bash IDE для VS Code


VS Code

Ставим редактор Visual Studio Code и расширение редактора "Bash IDE".


shellcheck

Ставим утилиту-линтер для bash - shellcheck:

sudo apt install shellcheck
Примечание

Для Ubuntu 16.04 в APT репозиторие доступна лишь старая версия shellcheck 0.3.7.

Чтобы поставить новую версию - скачайте бинарник с сайта https://github.com/koalaman/shellcheck:

а. Прямая ссылка: https://storage.googleapis.com/shellcheck/shellcheck-stable.linux.x86_64.tar.xz

sudo cp /usr/bin/shellcheck /usr/bin/shellcheck-0.3.7
tar -xf shellcheck-stable.linux.x86_64.tar.xz
sudo cp ./shellcheck-stable/shellcheck /usr/bin/shellcheck
shellcheck -V # 0.7.0

б. Или скрипт установки:

scversion="stable" # or "v0.4.7", or "latest"
wget -qO- "https://storage.googleapis.com/shellcheck/shellcheck-${scversion?}.linux.x86_64.tar.xz" | tar -xJv
cp "shellcheck-${scversion}/shellcheck" /usr/bin/
shellcheck --version

explainshell

Офф. репозиторий: https://github.com/idank/explainshell

Скачиваем образ и запускаем docker контейнер для подсказок по опциям/аргументам shell-команд (2 GB):

docker run --rm --name bash-explainshell -p 5000:5000 chrismwendt/codeintel-bash-with-explainshell

Это не официальный образ, и собран на базе форка, PR из которого еще не приняли в офф. реп. См.: https://github.com/idank/explainshell/pull/125

Добавляем в конфиг VS Code:

"bashIde.explainshellEndpoint": "http://localhost:5000"

Docker образ с json-api утилиты explainshell занимает ~2 GB места на диска.

Я запускаю/создаю контейнер каждый раз когда нужна документация, т.к. он cъедает 4% CPU в простое.

Офф. сайт утилиты: https://explainshell.com/

Примечание

Дополнительно я установил расширение для VS Code - shellman. Shellman предоставляет дополнительные сниппеты.


#shell, #bash, #explainshell, #shellcheck

категория: Bash