【shell一天一练】wget命令

86 阅读1分钟

今日小练题目📢

编写一个带参数的脚本,实现下载文件的效果,参数有两个:

1)第一个参数为文件下载链接;

2)第二个参数为目录,即下载后保存的位置;

3)注意要考虑目录不存在的情况,脚本需要提示用户是否创建目录

优秀作业🤌🏻

#!/bin/bash
#author: xYLiuuuuuu
#version: v1
#date: 2024-12-4

while :
do
        if [ -d $2 ]
        then
                break
        else
                read -p "目录不存在,是否要创建?(输入y或者n)" yn
                case $yn in
                        y|Y)
                                mkdir -p $2
                                break
                                ;;
                        n|N)
                                exit 2
                                ;;
                        *)
                                echo "你只能输入y或者n"
                                continue
                                ;;
                esac
        fi
done

cd $2

if ! which wget &>/dev/null
then
        echo "本机没有安装wget"
        apt install wget
        if [ $? -ne 0 ]
        then
                echo "没有安装成功wget"
                exit 1
        fi
fi

wget $1

if [ $? -eq 0 ];then
        echo "下载成功"
        exit 0
else
        echo "下载失败"
        exit 1
fi

敲黑板📝

  • 脚本参数为11 2
  • read -p 使用在和用户交互的场景下
  • while循环特别适合使用在和用户交互时需要多次交互的场景下
  • break会退出循环体,continue会直接进入下一次循环
  • wget命令
# -O指定文件名
wget -O wordpress.zip http://www.minjieren.com/download.aspx?id=1080

# 使用wget –limit -rate限速下载
wget --limit-rate=300k http://www.minjieren.com/wordpress-3.1-zh_CN.zip

# 使用wget -c断点续传
wget -c http://www.minjieren.com/wordpress-3.1-zh_CN.zip

# 使用wget -b后台下载
wget -b http://www.minjieren.com/wordpress-3.1-zh_CN.zip 
Continuing in background, pid 1840. 
Output will be written to `wget-log'.