Как написать bash-скрипт, загружающий файлы из Интернета?

Я новичок в программировании и пытаюсь создать скрипт, в котором пользователь будет подключаться к 8.8.8.8. Если соединение установлено успешно, то скрипт подскажет пользователю, какой веб-сайт он хочет загрузить. Процесс повторяется до тех пор, пока пользователь не введет «выход» (использование цикла while). Пока это код, который я написал. Может ли кто-нибудь сказать мне, что я делаю неправильно?

#!/bin/bash

ping -c 4 8.8.8.8
while true;
do
if [ $? -eq 0 ]
then
read -p "please type a website URL to download or type exit to quit" URL
wget -m $URL
else
echo "No internet connection"
exit 1
done

person m.Robot    schedule 02.09.2019    source источник
comment
1 Вы не проверяете результат ping, но всегда продолжаете. 2 Нет ничего, что бы проверяло слово exit.   -  person Biffen    schedule 02.09.2019
comment
Поэтому проверьте, набрал ли пользователь exit.   -  person KamilCuk    schedule 02.09.2019


Ответы (1)


#!/bin/bash

ping -c 4 8.8.8.8
if [ $? -gt 0 ]
then
    exit 1
fi
while true
do
    read -p "please type a website URL to download or type exit to quit: " URL
    if [[ $URL == "exit" ]]
    then
        exit 1
    fi
    wget -m $URL
done

шаг 1: получить код возврата от ping и выйти, если это не удалось

шаг 2: прочитайте URL-адрес и выйдите, если пользователь вводит «выход», иначе wget

person michael    schedule 02.09.2019
comment
Спасибо ..теперь я понимаю - person m.Robot; 02.09.2019
comment
Вам не нужно двоеточие после команды, если она последняя в строке. while true; do⏎ в той же строке или while true⏎ do⏎. - person Léa Gris; 02.09.2019
comment
Вы правы, я просто копирую/вставляю сценарий из вопроса. Исправил ответ. - person michael; 02.09.2019