2013-03-10 1 views
1

Я пытаюсь изучить некоторые сценарии. У меня есть сценарий, в котором я потерял свой пароль для проверки подлинности. Я запускаю сценарий ниже.Bash - запуск скрипта снова?

#!/bin/sh 
DIRECTORY=/media/truecrypt1 
for i in 1 2 password 
do 
    clear 
    echo "Trying $i as a password" 
    truecrypt -k "" --protect-hidden=no ITSTUDY $DIRECTORY -p $i 
    if [[ -d "${DIRECTORY}" && ! -L "${DIRECTORY}" ]] ; then 
     echo "It Worked!" 
    fi 
done 

Однако если пароль неправильно я получаю

Trying 1 as a password 
Incorrect password or not a TrueCrypt volume. 
Enter password for /mnt/ITSTUDY: 

Единственный способ получить скрипт для запуска снова я должен Ctrl + C. Если я нажимаю ctrl + c после каждого отказа, скрипт получает правильный пароль. Однако, если у меня есть 1000 возможных паролей, это не вариант.

Как получить сценарий, чтобы искать выход

неправильный пароль или не тома TrueCrypt.

затем отправьте ctrl + c? или бросить? Все, что я пробовал до сих пор, не проходит ниже строки truecrypt -k, пока я не сделаю ctrl + c.

+0

похоже, что truecrypt вводит интерактивный режим, чтобы запросить у вас пароль (который должен быть предотвращен пустым флагом ключа). Вместо того, чтобы пытаться автоматически отправлять сигналы (что возможно), вы должны посмотреть, почему команда 'truecrypt' делает это. – cmh

+0

Я попытался ответить на свой вопрос. Спасибо за вышеупомянутый отзыв. truecrypt --non-interactive была проблемой. – user610209

ответ

1

Truecrypt вводит интерактивный режим, чтобы запросить ваш пароль на каждой итерации вокруг цикла, это заблокирует вход, поэтому цикл не будет продолжаться.

Добавление флага --non-interactive должно решить эту проблему.