ssh
считывает стандартный ввод. Он наследует стандартный ввод от цикла while
. Это означает, что он сожрет все оставшиеся строки из вашего файла.
Это легко решается с помощью ssh -n
, который перенаправляет /dev/null
на стандартный ввод ssh
.
#!/bin/sh
while IFS= read -r addr || [ -n "$addr" ]; do
ping -c 3 "$addr"
sshpass -p 'P@ssword' ssh -n "$addr" 'mkdir Desktop/test'
echo
done < "$HOME/scripts/servers.txt" >"$HOME/scripts/results.txt"
http://mmogilvi.users.sourceforge.net/software/oauthbearer.htmlесть инструкции. Они длинные и имеют много возможностей потерпеть неудачу. Даже если вам это удастся, подумайте, сколько времени вы потратите на его отладку/отладку, чтобы решить, стоит ли это ваших усилий.
Это станет большой проблемой в феврале 2021 года, когда GMail начнет требовать OAuth2 для ретрансляции электронной почты.
Если вам действительно не нужно ретранслировать электронную почту через GMail, рассмотрите возможность регистрации в Amazon SES, SendInBlue или другой службе ретрансляции электронной почты SMTP, которая разрешает аутентификацию по идентификатору/паролю. Для отправителей небольшого объема они стоят от 0 до 0,10 доллара в месяц.