Sshpass в циклі


1

Чому при використанні sshpass в циклі перший sshpass виконує команди, а в наступному не?

for element in "${a[@]}"
 do {
     echo "$element"
     sshpass -p "omg" ssh root@$element 'ls' 
    }
done

Чи можемо ми мати певний контекст, наприклад, що a є?
var firstName

a - це масив із вмістом ip's of VM
Goking

виправлено використання: echo "$ element"; експортувати SSHPASS = 'omg'; sshpass -e ssh -o StrictHostKeyChecking = немає кореневого @ $ елемента 'ls' вимкнути SSHPASS
Goking

Не додавати додаткову інформацію до розділу коментарів. Краще відредагуйте своє запитання новою інформацією.
zx485

@Goking дає відповідь на це питання і позначає його як рішення. Видаліть фіксований зразок коду з питання і помістіть його у вирішення.
var firstName

Відповіді:


1

Я знайшов виправлення:

for element in "${a[@]}" do
   echo "$element"
   export SSHPASS='omg'
   sshpass -e ssh -o StrictHostKeyChecking=no root@$element 'ls'
   unset SSHPASS
done  

Примітка: питання "чому?" і відповідь нічого не пояснює. Це може або не може бути прикладом програмування вуду , але без пояснення це буде корисно в основному для вуду-програмістів.
Kamil Maciorowski

Я думаю, що він повинен щось зробити з підказкою: додати цей хост? і ви повинні ввести так. Крім того, що він прекрасно працює без циклу, навіть хост не додається в скрипт, він приймає так.
Goking
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.