如何检查受htaccess保护的网站上是否存在文件?

时间:2017-09-30 05:09:58

标签: bash .htaccess if-statement false-positive

我遇到了一个小问题,试图检查一个受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

我哪里出错了?

0 个答案:

没有答案