Как я могу вставить некоторый код в переменную $ SLEEP_TIME, заставляя удаленный сервер выполнить его?
Вы не можете. Расширение оболочки происходит один раз за команду. Расширение оболочки делает расширение параметра оболочки или подстановка команд .Это происходит одновременно.Вы не можете сделать оба.Вы не можете сначала развернуть переменную, а затем развернуть ее во второй раз, чтобы выполнить подстановку команд, потому что это два раскрытия.С здесь .
(Можно утверждать, что перенаправления происходят после расширения оболочки в bash за это , нопростой тест показывает, что это не так. Интересно, если это специально. Но руководство по Bash не было написано для языковых слоев. Вот почему это «руководство», а не «спецификация».)
Цитирование этоиспользуется для запрета разделения слов.Единственное, что вы можете сделать, - это сделать ваш скрипт ошибочным, передав непарсируемый аргумент в sleep
или передав два или более аргументов в сон.
Также, пожалуйста, не используйте backticks `` для подстановки команд.Они устарели, не могут быть вложенными, нечитаемыми и выглядят безобразно.Используйте $(...)
.