2013-03-10 167 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标志应解决此问题。