Среда
Система: 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
делает, как говорит его название, это более или менее очевидно.
Если какой-либо аргумент был передан, я хочу, чтобы функция / скрипт распечатала сообщение об ошибке и завершила работу.
Вопрос
Как отключить эти сообщения (только локально)?