Bagaimana cara menulis skrip bash yang mengunduh file dari internet?

Saya cukup baru dalam pemrograman dan saya mencoba membuat skrip di mana pengguna akan terhubung ke 8.8.8.8. Jika koneksi berhasil, maka skrip akan menanyakan kepada pengguna situs web mana yang ingin diunduh. Proses tersebut diulangi hingga pengguna mengetik “exit” (penggunaan while loop) Sejauh ini kode yang telah saya tulis. Adakah yang bisa memberi tahu saya apa yang saya lakukan salah?

#!/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 sumber
comment
1 Anda tidak memeriksa hasil ping, tetapi selalu melanjutkan. 2 Tidak ada apa pun yang memeriksa kata exit.   -  person Biffen    schedule 02.09.2019
comment
Jadi periksa apakah pengguna mengetik exit.   -  person KamilCuk    schedule 02.09.2019


Jawaban (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

langkah 1: dapatkan kode pengembalian dari ping dan keluar jika ini tidak berhasil

langkah 2: baca url dan keluar jika pengguna mengetik "keluar", jika tidak wget

person michael    schedule 02.09.2019
comment
Terima kasih..sekarang saya mengerti - person m.Robot; 02.09.2019
comment
Anda tidak memerlukan titik dua setelah perintah jika perintah tersebut berada di baris terakhir. while true; do⏎ pada baris yang sama, atau while true⏎ do⏎. - person Léa Gris; 02.09.2019
comment
Anda benar, saya hanya menyalin/menempelkan skrip dari pertanyaan. Memperbaiki jawabannya. - person michael; 02.09.2019