在 shell 脚本中使用 wget 来测试连通性

Use wget in shell script to test connectivity

我在 urls.txt 中有一个 URL 的列表,我想测试与服务器的连接。

urls.txt:

www.google.com
www.yahoo.com
www.gmail.com
https://whosebug.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 正确地存储在变量 url 中,但我收到以下错误:line 6: [: too many arguments.

您的 if 语句中不需要 [ ... ],只需使用

...
if grep -q 'connected' wget.log; then
...

这样 if 语句会查看 grep 的 return 值。