我试图创建一个bash脚本,用于检查列表状态代码中的url和来自标头的echo服务器名称。我真的很新。
#!/bin/bash
while read LINE; do
curl -o /dev/null --silent --head --write-out '%{http_code}' "$LINE"
echo " $LINE" &
curl -I /dev/null --silent --head | grep -Fi Server "$SERVER"
echo " $SERVER"
done < dominios-https
我得到以下输出
301 http://example.com
grep: : No such file or directory
答案 0 :(得分:0)
1)如果文本文件没有以新行结束,则读取LINE不能使用最后一行。
2)你没有在任何地方设置“$ SERVER”,grep说出来
3)并非所有服务器都在标题
中返回“Server:”试一试:
scriptDir=$( dirname -- "$0" )
for siteUrl in $( < "$scriptDir/myUrl.txt" )
do
if [[ -z "$siteUrl" ]]; then break; fi # break line if him empty
httpCode=$( curl -I -o /dev/null --silent --head --write-out '%{http_code}' "$siteUrl" )
echo "HTTP_CODE = $httpCode"
headServer=$( curl -I --silent --head "$siteUrl" | grep "Server" | awk '{print $2}' )
echo "Server header = $headServer"
done