Use o xargs sinalizador de string de substituição
Você precisa usar o sinalizador de string de substituição para xargs. Por exemplo, supondo que o restante de seu pipeline funcione como pretendido:
sudo arp-scan --localnet | grep 10 | cut -c1-12 | xargs -I{} -n1 ssh -tt myuser@{}
Observe que os comandos xargs e ssh precisam de alguns sinalizadores adicionais para funcionar corretamente. É importante destacar a necessidade de passar os -tt
flags para SSH para forçar a alocação de PTY no host remoto quando o cliente SSH estiver recebendo entrada padrão de um pipe.
Use as variáveis de substituição e shell de comando
Como alternativa, se você estiver capturando com precisão um único endereço IP, basta capturar o resultado em uma variável shell e invocar o SSH no host correto. Por exemplo, usando o shell Bash:
host_ip=$(sudo arp-scan --localnet | grep 10 | cut -c1-12)
ssh "myuser@${host_ip}"
A principal vantagem dessa abordagem é que é mais fácil depurá-la. No entanto, sua milhagem pode variar.