Bash - 重新启动脚本运行?

时间:2013-03-10 18:30:11

标签: bash truecrypt

我正在尝试学习一些脚本。 我有一个场景,我丢失了我的truecrypt密码。我运行下面的脚本。

#!/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。

1 个答案:

答案 0 :(得分:1)

Truecrypt正在进入交互模式,在循环中每次迭代都要求输入密码,这将阻止输入,因此循环不会继续。

添加--non-interactive标志应解决此问题。