【需求】 编写一个能接受两个参数的脚本:
1)第一个参数为URL,即可下载的文件;第二个参数为目录,即下载后保存的位置;
2)如果用户给的目录不存在,则提示用户是否创建;如果创建就继续执行,否则直接退出脚本,返回值为1;
3)如果给的目录存在,则下载文件;下载命令执行结束后测试文件下载成功与否;如果成功,返回值为0,否则返回值为2;
【分析】
1)脚本要有判断参数个数的过程,2个参数缺一不可;
2)判断给定目录是否存在,当目录不存在,则需要自动创建,此时是需要跟用户交互的,所以要使用read,让用户提供指令,这个指令的判断就需要考虑到多种情况。此时就需要使用while死循环;
【参考脚本】
#!/bin/bash if [ $# -ne 2 ] then echo "脚本需要提供两个参数,第一个参数为下载地址,第二个参数为下载目标目录" exit 3 fi 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 1 ;; *) echo "你只能输入y或者n" continue ;; esac fi done cd $2 wget $1 if [ $? -eq 0 ];then echo "下载成功" exit 0 else echo "下载失败" exit 2 fi
本例中的while死循环非常有用,在工作中使用场景非常多,所以请你一定要搞懂它的用法哈!
审核编辑:汤梓红
全部0条评论
快来发表一下你的评论吧 !