我有一个bash脚本如下:
SITE_LIST=/home/wps/sites.txt
for file in `cat $SITE_LIST`
do
/usr/bin/wpscan --update --no-color --url $file --disable-tls-checks --follow-redirection --enumerate utp > "$file".txt
done
当我运行此脚本时,我得到以下输出:
./wpscan_script_2: line 15: www.need_help.com: No such file or directory
./wpscan_script_2: line 15: www.need_help.com: No such file or directory
./wpscan_script_2: line 15: www.need_help.com: No such file or directory
./wpscan_script_2: line 15: www.need_help.com: No such file or directory
./wpscan_script_2: line 15: www.need_help.com: No such file or directory
./wpscan_script_2: line 15: www.need_help.com: No such file or directory
注意为了安全起见,我用网站www.need_help替换了实际网站。这不是实际网站的名称
我正在尝试做的是将每个结果传递到自己的文件中。我目前没有成功。
答案 0 :(得分:2)
我认为您的文件包含以下行的错误:www.need_help.com/xyz
(xyz
有什么东西,无所谓)
这意味着最终"$file".txt
消费www.need_help.com/xyz.txt
。
因此,您的脚本尝试将输出写入文件夹xyz.txt
中的文件www.need_help.com
,但由于该文件夹不存在而失败。
错误消息令人困惑但准确:www.need_help.com:没有此类文件或目录
您可能希望用其他内容替换所有不需要的字符,例如只保留字母数字和点
for url in `cat "$SITE_LIST"`
do
file="$(printf '%s' "$url" | sed 's/[^A-Za-z0-9\.]/_/g')"
/usr/bin/wpscan --update --no-color --url "$url" --disable-tls-checks --follow-redirection --enumerate utp > "$file".txt
done
如果您有许多替代品,您可以修改sed正则表达式。但它至少应该替换所有/
,例如:sed 's#/#-#g'
。
编辑:错过了您使用$ file作为网址