Пытаюсь выполнить команду с участием awk на нескольких удаленных хостах. Внутри цикла foreach выполняю ssh с удаленной командой, в которой используется awk. Проблема с кавычками, судя по всему. Команда, которую пытаюсь выполнить, в данном случае пинг на дефолт-гейтвей:ping `netstat -rn | grep default | awk '{print $2}'`
Цикл, в который пытаюсь это засунуть:
foreach i ( 1 2 3 )
ssh root@host$i "..."
endПроблема, судя по всему, с кавычками и со знаком доллара. Мне нужно, чтобы awk получил $2 от грепа на удаленном хосте, и никак не могу этого добиться. Кажется, уже перепробовал все возможные сочетания кавычек и пытался всячески эскейпить знак доллара, все что-то не то получается.
Заранее спасибо за подсказки.
>foreach выполняю ssh с удаленной командой, в которой используется awk. Проблема
>с кавычками, судя по всему. Команда, которую пытаюсь выполнить, в данномПлохо пробовал, нужно было продолжать:
ssh root@host$i 'ping `netstat -rn | grep default | awk "{print \\$2}"`'
Ещё учти, что если на host$i стоит Linux iputils, то ping без -с не прекращается.
>[оверквотинг удален]
>>с кавычками, судя по всему. Команда, которую пытаюсь выполнить, в данном
>
>Плохо пробовал, нужно было продолжать:
>
>ssh root@host$i 'ping `netstat -rn | grep default | awk "{print \\$2}"`'
>
>
>
>Ещё учти, что если на host$i стоит Linux iputils, то ping без
>-с не прекращается.Спасибище!