我遇到了一个小问题,试图检查一个受htaccess保护的网站上是否存在文件。
当文件没有使用用户名和密码验证过程保护htaccess时,这很有用。
#!/bin/bash
url="some file on a website"
function validate_url(){
if [[ `wget -S --spider $1 2>&1 | grep 'HTTP/1.1 200 OK'` ]]; then
echo "true";
fi
}
if `validate_url $url >/dev/null`; then
echo "BINGO - File $url exists ...!";
wget $url;
fi
我试图在受到htaccess保护的网站上执行相同的过程,但我遇到了误报。这是我的剧本:
#!/bin/bash
sourcefile="some file on a htaccess website"
usr="somedude"
pswd="someword"
function validate_url(){
if [[ `wget -S --spider --user="${usr}" --password="${pswd}" $1 2>&1 | grep 'HTTP/1.1 200 OK'` ]]; then echo "true"; fi
}
if `validate_url $sourcefile >/dev/null`; then
echo "BINGO - File $sourcefile exists ...!";
wget --user="$usr" --password="$pswd" $sourcefile;
fi
当我使用bash -v script.sh运行我的脚本时,我发现这非常令人困惑,因为该文件在受htaccess保护的网站上不存在。
validate_url $sourcefile >/dev/null
wget -S --spider --user="${usr}" --password="${pswd}" $1 2>&1 | grep 'HTTP/1.1 200 OK'
File $sourcefile exists ...!
--2017-09-30 01:06:29-- $sourcefILE
Resolving $sourcefile $website
Connecting to $website ... connected.
HTTP request sent, awaiting response... 401 Unauthorized
我哪里出错了?