Передавать переменные через ssh - PullRequest
0 голосов
/ 23 февраля 2020

Я пытаюсь передать переменные через s sh, и написал два коротких тестовых сценария (bash)

Этот - для выполнения сценария на другой стороне (и он работает, по крайней мере, частично)

Я начинаю его с выполнения: 'mms test alpha one'

#!/bin/bash
    sshpass -p (password) ssh hellfire@192.168.0.11 'bash /scripts/mms2 "$@"'

Второй выполняемый скрипт:

#!/bin/bash
echo "$@" >/scripts/test1.txt

Этот скрипт только для проверки, если параметры передаются.

Пока что он создает текстовый файл, но он пустой, поэтому я не знаю, есть ли ошибки в обоих или только в одном из сценариев.

В основном я хочу передать набор переменных в сценарий на сервере, эти переменные могут содержать пробелы.

У кого-нибудь есть советы?

1 Ответ

1 голос
/ 23 февраля 2020

Я обнаружил в комментарии @ Gordon Davidsson , что $(printf "%q " "$@") может использоваться для отправки его в виде строки, поэтому удаленный сервер не интерпретирует переменные как разные команды.

Мой новый и рабочий скрипт:

#!/bin/bash
sshpass -p (password) ssh hellfire@192.168.0.11 "bash /scripts/mms2 $(printf "%q " "$@")"
...