Используйте wget в сценарии оболочки для проверки подключения - PullRequest
0 голосов
/ 17 мая 2018

У меня есть список URL-адресов в urls.txt, к которым я хочу проверить соединение с сервера.

urls.txt:

www.google.com
www.yahoo.com
www.gmail.com
https://stackoverflow.com/questions

Я хочу запустить простой скрипт оболочки для проверки возможности подключения для каждого 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.

1 Ответ

0 голосов
/ 17 мая 2018

Вам не нужно [ ... ] в вашем if утверждении, просто используйте

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

Таким образом, оператор if смотрит на возвращаемое значение grep.

...