Как подавить неактуальные сообщения ShellCheck? - PullRequest
0 голосов
/ 05 октября 2018

Среда

Система: Linux Mint 19 (на основе Ubuntu 18.04).

Редактор: я использую Код Visual Studio ( официальный сайт ) с плагином ShellCheck для проверки ошибок, предупреждений и подсказок на лету.


ShellCheck

является необходимым инструментом для каждого сценариста оболочки.

Несмотря на то, что разработчики, должно быть, приложили огромные усилия, чтобы сделать его настолько качественным, насколько это возможно, иногда он выдает не относящиеся к делу предупреждения и / или информацию.

Пример кода с такими сообщениями (предупреждение SC2120 + непосредственно смежная информация SC2119 ):


Фрагмент сценария оболочки POSIX

am_i_root()
# expected arguments: none
{
    # check if no argument has been passed
    [ "${#}" -eq 0 ] || print_error_and_exit 1 "am_i_root" "Some arguments have been passed to the function!\\n\\tNo arguments expected.\\n\\tPassed: ${*}"

    # check if the user is root
    # this will return an exit code of the command itself directly
    [ "$(id -u)" -eq 0 ]
}

# check if the user had by any chance run the script with root privileges and if so, quit
am_i_root && print_error_and_exit 1 "am_i_root" "This script should not be run as root!\\n\\tQuiting to safety."

Где:

  • am_i_root проверяет наличие переданных нежелательных аргументов.Его реальная цель не требует пояснений.

  • print_error_and_exit делает, как говорит его название, это более или менее очевидно.

  • Если какой-либо аргумент был передан, я хочу, чтобы функция / скрипт распечатала сообщение об ошибке и завершила работу.


Вопрос

Как отключить эти сообщения (только локально)?

1 Ответ

0 голосов
/ 05 октября 2018

Подумайте, прежде чем делать это!

Делайте это только в том случае, если вы на 100,0% уверены, что сообщение действительно не имеет значения.Затем прочитайте вики здесь и здесь по этой теме.


Как только вы убедились, что сообщение (я) не имеет значения

Хотя, вообще говоря, есть и другие способы достижения этой цели, я сказал отключить эти сообщения локально , так что в действительности есть только одно.

Это добавление следующей строки перед фактическойпоявление сообщения:

# shellcheck disable=code
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...