【发布时间】:2015-09-08 09:25:03
【问题描述】:
#!/bin/bash
commonguess(){
for guess in $(< passwordlist)
do
try=$(echo "$guess" | sha256sum | awk '{print $1}' )
if [ "$try" == "$xxx" ]
then
echo "$name:$try"
return 0
fi
done
return 1
}
dict(){...}
brute(){...}
while IFS=':' read -r name hashing;do
commonguess || dict || brute
done
我的代码已修复,我还需要做一件事。当我运行功能蛮力时,它应该在 2 分钟后停止。我知道 sleep 命令可以使脚本暂停,但是有人告诉我使用“kill”不是一个好主意。所以我想知道有没有办法做到这一点。
【问题讨论】:
-
sleep 120 && kill $$ &.如果您要终止脚本,那么使用 kill 不是问题。如果您担心清理,那么也可以使用陷阱。 -
如果您使用的是
for variable in $(cat file),您的代码尚未修复。请参阅此常见问题解答:mywiki.wooledge.org/DontReadLinesWithFor -
while [[ $(date +%s) -lt $deadline ]]; do...? -
@tripleee 感谢您告诉我,我昨天向老师展示了我的代码,我问他关于“cat 文件”的问题,他告诉我只需使用 $(cat 文件)。我刚刚在shellcheck上检查了它。现在我已经修好了!
-
希望你的老师不要也没有缩进。