Набор сценариев Bash Coordinate Universal Time на удаленной системе с использованием SSH и даты - PullRequest
0 голосов
/ 07 декабря 2018

У меня есть скрипт bash, который пытается синхронизировать время на другом компьютере.Это не мой исходный код, но, поскольку я выполняю рефакторинг bash-скрипта, я пытаюсь заставить его пройти ShellCheck.

Исходный код для него выглядит примерно так:

d=$(date -u +%m%d%H%M%Y.%S) ssh decs@host-zc1 "sudo date -u ${d}"

Предупреждение ShellCheck имеет значение SC2029 и гласит: «Обратите внимание, что без экранирования это расширяется на стороне клиента.».На самом деле я не хочу этого избегать.

Есть ли другой способ избавиться от этого предупреждения и все же выполнить этот шаг?

1 Ответ

0 голосов
/ 07 декабря 2018

Когда вы определили, что предупреждение не относится к вам, вы можете проигнорировать его с комментарием # shellcheck disable:

d=$(date -u +%m%d%H%M%Y.%S)
# shellcheck disable=SC2029
ssh decs@host-zc1 "sudo date -u ${d@Q}"

Хотя вам действительно следует использовать ${d@Q} или printf %qчтобы убедиться, что имя будет правильно экранировано.

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