Как мне сделать так, чтобы я мог напрямую подключаться к виртуальной машине с моего компьютера?

Вecho "\abc\$\\"(например )входят два шага.

Во-первых, поскольку строковый аргумент для echoзаключен в двойные -кавычки, оболочка будет что-то делать с экранированными символами внутри.

В случае "\abc\$\\"он преобразует его в \abc$\перед передачей echo. \aостанется без изменений, поскольку aне является одним из «специальных» символов. Другие экранированные символы будут буквальными , что означает, что они больше не имеют особого значения в оболочке ($не запускает раскрытие, обратная косая черта не экранирует следующий символ и т. д. )Обратите внимание, что $в конце строки в двойных кавычках по-прежнему является "особым", так как могло бы ввести расширение, если бы строка не заканчивалась сразу после него. Две строки "a$"и "a\$"идентичны, так как $в первой строке ни к чему не применяется.

Затем echoможет выполнить собственную интерпретацию этого строкового аргумента. Некоторые реализации echoрассматривали бы \aкак означающее, например, "символ колокольчика".

Я также думаю, что здесь вы неправильно понимаете стандарт. Оценка обратной косой черты, за которой следует один из специальных символов, удалит обратную косую черту. Вы, кажется, думаете, что он должен оставаться неизменным и что, например. \$следует оставить как \$. Стандарт говорит напротив этого.

0
02.02.2021, 14:22
1 ответ

Ну, вы можете просто добавить шаг скачка (прыжок хоста ).

ssh -J user@server user@virtual-machine

Очевидно, что это не прямое подключение как таковое, но оно пропускает выполнение команды ssh на сервере.

Возможно ли прямое подключение и каким образом, зависит от устройства виртуальной машины. Например. если он напрямую виден в сети со своим IP. Типичные режимы подключения перечислены здесь (, не ограничиваясь VirtualBox ).

0
18.03.2021, 22:32

Теги

Похожие вопросы