Eu tenho um script abaixo que funciona, exceto para a parte esperada:
#!/bin/bash
#
invdir=/home/john/inventory
for file in $invdir/$1
do
if [ -z $1 ] || [ -z $2 ]
then
echo "You must enter a value: prod, dev, dr, or test AND the password of the env you entered"
exit 0
else
for host in `cat $file`
do
ssh-copy-id -i ~/.ssh/id_rsa.pub $host <<-EOF
expect "password:"
send "$2\n"
EOF
done
fi
done
Encontrei um script esperado que faz a maior parte do que preciso:
#!/usr/bin/expect -f
spawn ssh-copy-id $argv
expect "password:"
send "your_password\n"
expect eof
to execute ./expect_script user@host1
Meu problema é que não sei o suficiente sobre bash ou espero fazer com que esses dois funcionem em um script bash ou script expect.
Agradeço antecipadamente....
Algumas notas:
for
<<-EOF
porque é muito fácil usar não tabulações para a palavra EOF.<<'EOF'
para proteger as variáveis esperadas