Мне нужно экранировать 'в этой команде для SSH Exec

grep IPADDR /etc/sysconfig/network-scripts/ifcfg-eth0 |awk -F= '{print $2}'

Как мне избежать этого?

У меня есть это, которое не работает

ssh host 'grep IPADDR /etc/sysconfig/network-scripts/ifcfg-eth0 |awk -F= '{print $2}''

и это не

ssh host 'grep IPADDR /etc/sysconfig/network-scripts/ifcfg-eth0 |awk -F= \'{print $2}\''

спасибо, Дин

2 ответа2

0

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

ssh user@serverB <<\EOF
your sql query....
.....
.....
EOF
0

Предполагая, что вам не нужно выполнять какую-либо подстановку (параметр, команду и т.д.) Внутри строки, вы можете использовать $'...' кавычках:

ssh user@serverB $'grep str file | awk \'{print $2}\''

В качестве примечания, вы можете заменить конвейеры grep/awk одним вызовом awk:

ssh user@serverB $'awk \'/str/ {print $2}\' file'

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .