Не мог принять управление ввода данных пользователем в команде pssh

Я пытаюсь получить команду OS от ввода данных пользователем и экспорта и использования в функции, как ниже

export command5=date
export command4=uname

Его работа в ниже команды

pssh -h /tmp/cus6 -i "$command5;$command4"
[1] 04:17:06 [SUCCESS] Server1
Mon Jan 28 03:17:06 UTC 2019
Linux
[2] 04:17:06 [SUCCESS] Server2
Mon Jan 28 03:17:06 UTC 2019
Linux

Но не работал при попытке сохранить команды в одной строке

pssh -h /tmp/cus6 -i 'echo $(echo ), $(command5), $(command4)'
[1] 04:26:45 [SUCCESS] Server1
, ,
Stderr: bash: command5: command not found
bash: command4: command not found
[2] 04:26:45 [SUCCESS] Server2
, ,
Stderr: bash: command5: command not found
bash: command4: command not found

Но то же работает в хранении команд вместо command5 и command4

pssh -h /tmp/cus6 -i 'echo $(echo ), $(date), $(uname)'
[1] 04:30:01 [SUCCESS] Server1
, Mon Jan 28 03:30:01 UTC 2019, Linux
[2] 04:30:01 [SUCCESS] Server2
, Mon Jan 28 03:30:01 UTC 2019, Linux
-1
задан 27 January 2019 в 20:44

1 ответ

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

Затем для передачи замены команды удаленной оболочке необходимо будет заключить в кавычки (или Escape) это.

Напр.

$ cmd='uname -r'

$ parallel-ssh -h hostsfile -i "echo \$($cmd)"
[1] 22:38:52 [SUCCESS] vm
4.4.0-141-generic
[2] 22:38:52 [SUCCESS] localhost
4.15.0-43-generic

Похожие страницы: В некоторых местах awk не работает в команде pssh

1
ответ дан 26 October 2019 в 11:02

Другие вопросы по тегам:

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