По предложению @david-king, это решение на основе md5
для проверки целостности файлов после передачи. Выполните следующую команду один раз после cd
в / source / folder
на локальном компьютере и один раз после cd
ing в / destination / folder
на удаленном хосте: find. -тип f -print0 | xargs -0 -I {} md5sum {} | md5sum
. Полученный хеш должен быть идентичным после успешной передачи.
Обновление: Согласно этот ответ на аналогичный вопрос о ServerFault , (проверьте этот ответ @Gilles для подробностей). В качестве альтернативы проверке хэшей файлов после передачи вы можете использовать scp
не гарантирует целостность файла rsync
для передачи файлов и проверки его кода возврата.
Обновление 2: Следующее только проверяет соответствие файлов и их соответствующих размеров после передачи: find. -тип f -print0 | xargs -0 -I {} stat --printf = "% n% s \ n" {} | сортировать | md5sum
На данный момент у вас 3 барьера:
$looptest"
--должна быть"$looptest"
>
для сравнения строк в"$lname" >...
--должно бытьif [ "$lname" !=...
Я воспользуюсь моментом, чтобы вызвать службу shellcheck.net; вы можете вставить свой код в поле там, и он даст вам предложения и предупреждения.
Подсветка синтаксиса здесь, в SE, раскрывает проблему (, как и в любом надлежащем редакторе ), но вам нужно внимательно читать раскраску и надеяться, что цвета достаточно различимы, чтобы различать их.
while [ $looptest" = y ]
do
cursor 7 4; echo "Middle Init : "
cursor 8 4; echo "Dept # : "
cursor 9 4; echo "Job Title : "
...
done
Все, что начинается с кавычки в $looptest"
, показано красным, так как оно взято как строка в кавычках. Следующий "
прекращает цитирование, а следующий начинает его снова, поэтому цитируемые и не цитируемые -части сценария инвертируются. Это продолжается до строки с #
, которая теперь без кавычек начинает комментарий до конца строки, удаляя эффект "
после нее и восстанавливая цитирование остальной части скрипта.
Оболочка продолжает синтаксический анализ и видит ключевое слово done
, в то время как до этого на самом деле ожидала do
, отсюда и ошибка.(do
не был распознан во время цитирования, конечно.)
Без #
вы получите сообщение об ошибке для круглых скобок тремя строками ниже (это специальные синтаксические токены ), а без них от -до --] указывает на ошибку при переходе к EOF при поиске закрывающей цитаты.