Когда вы (или Ansible) выходите из системы, выходной сигнал по-прежнему будет отправлен на текущий процесс, хотя он работает в фоновом режиме.
Вы можете использовать nohup
, чтобы обойти это.
- name: Start daemon
shell: nohup myexeprogram arg1 arg2 &
Во-первых, вы ошиблись цитатами. Вам нужны одинарные кавычки, а затем снова - никакие кавычки не сделают вещи намного понятнее.
Так что либо вы делаете это:
//userresponse.charat(i) - "\001" //wrong syntax
userresponse.charat(i) - '\001';
Или вы делаете это:
//userresponse.charat(i) - "\001" //wrong syntax
userresponse.charat(i) - 1;
При этом на ваш вопрос проще ответить. Он принимает символ во входе пользователя и вычитает его.
Это очень слабое шифрование. Каждая буква зашифрована до буквы в алфавите. Таким образом, «BCDE» зашифровывается как «ABCD».
Первая буква в алфавите «А» является особенной: хотя она зашифрована таким же образом, буква перед «А» - это не буква, а «@». Таким образом, «ABCD» будет зашифрован в «@ABC». И чтобы сделать это еще яснее, «EBCD» будет зашифрован в «DABC».
userresponse.charat(i) - '\001' != ecryptionkey.CharAt(i)
Теперь, что имеет больше смысла? Он выбирает букву в позиции i, затем «шифрует» ее и сравнивает с буквой в позиции i шифра «ключ дешифрования».
Если вы пройдете все буквы и все совпадения - пользователь ввел тот же простой текст, который использовался для создания шифра «ключ дешифрования». Другими словами, если одна буква не соответствует, пользователь получил неверный текст. Вот что значит "! =".
Давайте рассмотрим пример:
Скажите, что пользователь печатает в «BCD».
На первом этапе (i = 0) он просматривает первую букву «B» и вычитает 1, который дает «A». Теперь он сравнивает эту букву «А» с первой буквой в ключе расшифровки.
На втором шаге (i = 1) он посмотрел бы на вторую букву, которая является «C», и вычитает 1, который дает «B» и сопоставляет его со второй буквой в ключе дешифрования.
На третьем шаге (i = 2) он посмотрел бы на третью букву, которая представляет собой «D», и вычитает 1, который дает «C» и сопоставляет ее с третьей буквой в ключе расшифровки.
Если одна буква не соответствует, она должна потерпеть неудачу (отсюда и «! =»).
Итак, на вопрос "если ключ дешифрования, например, ABCD, то логически ответ должен быть ABCD?"
Нет! Если ключ дешифрования, например, «ABCD», то логически ответ должен быть «BCDE»! Поскольку каждая буква ответа вычитается одним.
BLOCKQUOTE>