2013-03-10 156 views
1

我想學習一些腳本。 我有一個場景,我失去了我的truecrypt密碼。我運行下面的腳本。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 2013-03-10 18:42:21

+0

我試圖回答我自己的問題。感謝上面的提示。 truecrypt - 非交互式是問題。 – user610209 2013-03-10 18:51:12

回答

1

Truecrypt進入一個交互模式,在循環周圍每次迭代都要求輸入密碼,這會阻止輸入,因此循環將不會繼續。

添加--non-interactive標誌應解決此問題。