我在urls.txt
中有一个网址列表,我希望测试服务器的连接。
urls.txt:
www.google.com
www.yahoo.com
www.gmail.com
https://stackoverflow.com/questions
我想运行一个简单的shell脚本来测试每个URL的连接,并将wget的输出写入文件wget.log
我还需要使用--spider
这是我的剧本:
urls=( $(awk '/URLs:/{y=1;next}y' urls.txt) )
for url in "${urls[@]}"
do
wget --spider -o wget.log "${url}"
if [ grep -q 'connected' wget.log ]; then
echo 'successful'
else
echo 'unsuccessful'
fi
rm wget.log
done
for
循环的作用是将每个网址正确存储在变量url
中,但我收到以下错误:line 6: [: too many arguments
。
答案 0 :(得分:1)
您的[ ... ]
语句中不需要if
,只需使用
...
if grep -q 'connected' wget.log; then
...
这样if
语句会查看grep
的返回值。