问题描述
我正在尝试使用我知道的密码在 900000000 到 900999999 之间的文件解压缩文件,但我遇到了错误的 crc 错误和包含一些无意义的 gov.csv。我怎样才能在不结束程序的情况下克服这个问题?我知道实际密码是什么,但创建这种“蛮力”尝试是家庭作业的一部分。我遇到的错误似乎源于解压缩 apt。我的代码如下。添加 yes 是因为我不断被要求替换文件,即使它是错误的密码。
for word in $(echo 900{000000..999999})
{
echo $word
yes | unzip -q -P $word $1
if [ -s gov.csv ]
then
echo "$word is the password"
exit
fi
}
我尝试添加一个额外的 if 语句,但对改善这种情况没有任何作用。
if yes | unzip -q -P $word $1 | grep -i "bad crc"
then
rm gov.csv
fi
如果我第一次在这个网站上发帖,我的代码部分格式不好,我也想道歉。
解决方法
#!/bin/bash
for id in $(echo 900{000000..999999})
{
echo $id
unzip -q -o -P "$id" "$1"
if [[ $? -eq 0 ]]
then
echo "Password is $id"
exit
fi
}
谢谢大家的帮助,-o 是用来替换 yes 管道的,还有 $? -eq 0
验证前一个命令没有返回错误。我仍在学习并感谢所提供的所有帮助。