Comando host com o awk

0

Por favor, porque "echo" instrução:

iphost="$(ssh root@$machine -x "host $machine | awk '/has address/ { print $4 }'")"
echo $iphost

exibição:

g-3.xx.yyy.zz has address 172.16.65.35

em vez de:

172.16.65.35

?

Muito obrigado pela ajuda.

Atenciosamente.

    
por researcher 23.07.2015 / 18:19

2 respostas

1

Você deve usar a barra invertida de seqüência de escape (\) dentro do comando awk como abaixo. Como você usa o comando dentro de aspas duplas, as variáveis serão resolvidas antes da execução. Então, ele tentará entender $ 4 como uma variável do sistema e tentar resolvê-lo. Se você usar barra invertida de seqüência de escape, ele reterá o $ 4 no comando awk.

iphost="$(ssh root@$machine -x "host $machine | awk '/has address/ { print \ }'")"
echo $iphost
    
por 23.07.2015 / 19:10
0

Tente isso em ~ / .bashrc ou similar

export iphost="$(echo $SSH_CLIENT | awk '{print $1}')"
    
por 23.07.2015 / 18:32

Tags