Я хотел бы создать цикл, который повторяет передачу ncftp, если он возвращает ошибку.
Я немного не уверен, как переменную кода выхода можно использовать в цикле. Будет ли что-то вроде этой работы?
until [$? == 0]; do
ncftpput -DD -z -u user -p password remoteserver /remote/dir /local/file
done
Ответы:
Я нашел основу для этого элегантного цикла в другом месте на сервере. Оказывается, нет необходимости сохранять код выхода, так как вы можете проверить непосредственно по самой команде;
источник
Почти. Возможно, вам лучше сохранить возвращаемое значение как переменную, чтобы вы могли предварительно установить его перед циклом. В противном случае это будет зависеть от команды последнего запуска.
Вы также можете захотеть добавить
sleep
туда, чтобы он не появлялся слишком быстро.источник
Немного странно, но мое решение состояло в том, чтобы просто создать функцию bash, которая запускается сама, если она завершается с ошибкой
источник
Вы можете сделать цикл, пока ваша команда возвращает ошибку:
источник