Нет необходимости делать перенаправление строки здесь -частью удаленной команды. Данные, перенаправленные в ssh
, попадут на стандартный ввод удаленной команды :
ssh remote 'some command' <<<'whatever string'
В вашем случае
ssh target 'command -j /dev/stdin' <<<'{"key":"value"}'
Но это предполагает, что и key
, и value
уже закодированы в формате JSON.
Создание JSON с помощьюjq
(для получения правильного кодирования значения, предполагая, что оно хранится в переменной оболочки$value
):
jq -nc --arg val "$value" '{ key: $val }' | ssh target 'command -j /dev/stdin'
Или используйте jo
для записи документа JSON:
jo key="$value" | ssh target 'command -j /dev/stdin'