Как я могу автоматизировать эту задачу?
1) Вы находитесь в точке A. 2) Вы входите в ssh. 3) Вы запускаете скрипт в точке B, для которого требуется параметр, известный в точке A.
Сначала я подумал, что, возможно, смогу отправить значение, когда открыл соединение с помощью ssh. Затем, возможно, проще, между 1) и 2), поместите весь сценарий в то же место в точке B (заменив старый). Но все же, как мне выполнить скрипт в B? (То есть, как автоматизировать этот последний шаг. Конечно, я мог бы запустить его вручную после ssh.)
Еще одна мысль, может быть, вообще отказаться от ssh - у меня есть веб-страница в B, так может ли скрипт быть вызван через веб-интерфейс «под капотом»?
Или вы бы сделали это совсем по-другому?
Ответы:
Это будет выполнено
myscript foobar
на сервере.источник
~/.elm/aliases
.)"
), а не одиночные ('
). Использование double означает, что оболочка на вашем локальном компьютере расширит переменную, а затем выполнитssh
команду. Если бы использовались единичные, локальная оболочка не коснулась бы команды, которая отправляется дословно, но все еще распространяется в удаленной оболочке.$myparameter
содержит пробелы, он будет разделен на стороне сервера. У Bashprintf
есть%q
формат, который вы можете использовать. У меня есть пример кода, но он здесь не подходит. Я создам новый ответ на это.(Это продолжение моего комментария к принятому ответу .)
Обратите внимание, что если
$myparameter
содержит пробелы, он будет разделен на стороне сервера. У printf Bash есть%q
формат, который вы можете использовать. Пример:источник
Если можно с уверенностью предположить, что
$myparameter
он не будет содержать одинарных кавычек (в противном случае смотрите здесь или используйтеprintf '%q' ...
решение от janmoesen), вы можете просто поместить одинарные кавычки,$myparameter
чтобы избежать проблемы разделения пространства на стороне сервера.источник