Как использовать bash $ (awk) в одной ssh-команде?
Я пытаюсь выполнить одну команду надssh
который содержит `sub-code` или $ (sub-code) (я использую это все время, но я не делаю 'не знаю официального имени для этого), который должен быть выполнен первым, но на целевом сервере.
Ради аргумента пустьскажем, это команда, которую я хочу использовать. Конечно, это может быть сделано сhostname
, но это всего лишь упрощенный пример, который содержит все мастера форматирования, которые я хочу использовать.
echo `uname -a | awk '{print $2}'`
Нет проблем. Но как вы избежите этого должным образом, чтобы отправить его черезssh
в одной команде? Следующее неверно, поскольку оно позволяет серверу ответить на ваше локальное имя хоста. Подкод выполняется локально:
ssh myServer echo `uname -a | awk '{print $2}'`
Но любое убежище, которое приходит на ум, нет работа:
$ ssh myServer echo \`uname -a | awk '{print $2}'\`
awk: cmd. line:1: {print $2}`
awk: cmd. line:1: ^ invalid char '`' in expression
$ ssh myServer echo \$(uname -a | awk '{print $2}')
bash: syntax error near unexpected token `('
$ ssh myServer echo \$\(uname -a | awk '{print $2}')
bash: syntax error near unexpected token `)'
$ ssh myServer echo \$\(uname -a | awk '{print $2}'\)
awk: cmd. line:1: {print $2})
awk: cmd. line:1: ^ syntax error
bash: -c: line 0: unexpected EOF while looking for matching `)'
bash: -c: line 1: syntax error: unexpected end of file
Я хотел бы получить ответ, который включает использование правильно экранированного` or $() because I'd like to know if it's possible.
Эхо может быть что-то более сложным.