while true
do
if scp remote-host:~/myfile . &> /dev/nul
then
echo "transfer OK"
break
fi
sleep 30
done
Или, если вы предпочитаете что-то более компактное:
while :; do
(scp remote-host:~/myfile . &> /dev/null) && break
sleep 30
done
echo "transfer OK"
Обратите внимание, что :
- это встроенная нулевая команда с нулевым (успешным) кодом завершения.