bash - 用于下载用户确定的 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
解决方案
尝试这个
#!/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
您必须使用-P
not-o
- 我
[[ $REPLY = "$url" ]];
假设您想检查 url 架构(我没有进行完整的架构 url 验证,但您会明白的)。 - 不知道你为什么使用
mkdir &&
所以我删除了它,因为我认为这里没有必要,我也删除了一个echo
.
推荐阅读
- c++ - micros() Arduino 中的 for 循环
- flutter - Cupertino Date Picker Flutter NoSuchMethod 错误(datePickerHour())在实现中
- c - 使用结构集中硬件抽象层使代码执行速度变慢
- dialogflow-es - Dialogflow 无法处理 @sys.date 的简写形式
- azure-devops - Azure cli:克隆管道
- c++ - 程序没有正确读取字符串
- python - 无法将值转换为 int python
- asp.net - ASP.net Webform 中的 Page_OnLoad 事件中的会话 ID 为空
- google-cloud-run - Cloud Run - 使用通配符子域的自定义域映射
- google-cloud-platform - 调整 GKE 以加快分配和分配 IP 给新服务的速度