Sshpass en boucle

1

Pourquoi, lorsque vous utilisez sshpassune boucle, la première sshpassexécute des commandes, pas la suivante?

for element in "${a[@]}"
 do {
     echo "$element"
     sshpass -p "omg" ssh root@$element 'ls' 
    }
done
Goking
la source
Pouvons-nous avoir un contexte, comme par exemple ce qui aest?
var prenom
a est un tableau contenant les
adresses
fixe il utiliser: echo "$ element"; export SSHPASS = 'omg'; sshpass -e ssh -o StrictHostKeyChecking = pas de racine @ $ élément 'ls' non défini SSHPASS
Goking
N'ajoutez pas d'informations supplémentaires dans la section commentaire. Mieux modifier votre question avec la nouvelle information.
Zx485
@Goking apporte une réponse à cette question et la marque comme solution. Supprimez l'échantillon de code fixe de la question et placez-le dans la solution.
var prenom

Réponses:

0

J'ai trouvé un correctif:

for element in "${a[@]}" do
   echo "$element"
   export SSHPASS='omg'
   sshpass -e ssh -o StrictHostKeyChecking=no root@$element 'ls'
   unset SSHPASS
done  
Goking
la source
1
Remarque: la question est "pourquoi?" et la réponse n'explique rien. Ce peut être ou ne pas être un exemple de programmation vaudou , mais sans explication, il sera surtout utile aux programmeurs vaudous.
Kamil Maciorowski
Je suppose qu'il doit faire quelque chose avec l'invite: ajouter cet hôte? et vous devez taper oui. Outre que cela fonctionne parfaitement sans la boucle, même l'hôte n'est pas ajouté dans un script, il suppose que oui.
Goking