Я пытаюсь получить команду 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
Для локальной переменной, которая будет расширена, необходимо будет заменить внешние одинарные кавычки двойными кавычками.
Затем для передачи замены команды удаленной оболочке необходимо будет заключить в кавычки (или 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