首页 > 解决方案 > 用于下载用户确定的 URL 的 Bash 脚本

问题描述

我需要编写一个 bash 脚本来捕获用户输入的 URL 并使用 wget 下载 URL,保存到用户确定的文件夹。

我的 if 语句中的 URL 有问题

脚本:

#!/bin/bash

until [[ $REPLY = "exit" ]]

do

read -p "Please type the URL of a file to download or type "exit" to quit: " REPLY

echo

      if [[ $REPLY = "$url" ]]; then

        read -p "Please type your download location: " user_dir

        mkdir -p  $user_dir &&

        wget $url -o $user_dir

        fi

done

echo "Thank you. Goodbye!"

exit 0

标签: bashwget

解决方案


尝试这个

#!/bin/bash

until [[ $url = "exit" ]]

do

  read -p "Please type the URL of a file to download or type exit to quit: " url

  if [[ $url == "https://"* ]] || [[ $url == "http://"* ]]; then

    read -p "Please type your download location: " user_dir

    mkdir -p  $user_dir

    wget $url -P $user_dir

  else
    echo "No valid url"
  fi

done

echo "Thank you. Goodbye!"

我做了一些改变:

  • 要保存在目录中,wget您必须使用-Pnot-o
  • [[ $REPLY = "$url" ]];假设您想检查 url 架构(我没有进行完整的架构 url 验证,但您会明白的)。
  • 不知道你为什么使用mkdir &&所以我删除了它,因为我认为这里没有必要,我也删除了一个echo.

推荐阅读