老男孩教育每日一题-2017年5月3日-写一个脚本:创建一个函数,能接受两个参数:

简介:

题目:老男孩教育每日一题-2017年5月3日-写一个脚本:创建一个函数,能接受两个参数

题目要求

1)第一个参数为URL,即可下载的文件;第二个参数为目录,即下载后保存的位置;
2)如果用户给的目录不存在,则提示用户是否创建;如果创建就继续执行,否则,函数返回一个51的错误值给调用脚本;
3)如果给的目录存在,则下载文件;下载命令执行结束后测试文件下载成功与否;如果成功,则返回0给调用脚本,否则,返回52给调用脚本;

参考答案

[root@oldboyedu scripts]# cat downfile.sh
#!/bin/bash
url=$1
dir=$2
download()
{
    if [ ! -e $dir ];then 
    	read -p "$dir No such file or directory,create?(y/n)" answer
    	if [ "$answer" == "y" ];then
    		mkdir -p $dir
    		cd $dir
    		wget $url 1 >/dev/null 2>&1
    		if [ $? -ne 0 ]; then
    			return "52"
    		fi
        else
    		return "51"
    	fi
    fi
    }
download $url $dir
echo $?

网友回答

向日葵-架构师交流群

#!/bin/sh
if [ ! -d $2 ];then
echo "Directory does not exist.";
exit 51
fi
wget -O $2${1##*/} $1
if [ $? -ne 0 ];then
echo "Failed to download file."
exit 52
fi

今天是每日一题陪伴大家的第41天期待你的进步

对于题目和答案的任何疑问,请在博客评论区留言
往期题目索引
http://lidao.blog.51cto.com/3388056/1914205


本文转自 李导 51CTO博客,原文链接:http://blog.51cto.com/lidao/1921421

相关文章
|
4月前
|
前端开发 Java 程序员
牛皮的程序猿后端返回值怎么定义
在后端接口封装中,通常会统一返回数据格式,确保稳定性和可预测性。常见的模式包括状态码(如`code`或`ret`)、状态信息(`message`或`msg`)、核心数据(`data`)。`success`字段提供了一种直观判断接口是否成功的标志。例如:
27 0
|
5月前
|
存储 Python
命令参数:编程输入之道
命令参数:编程输入之道
|
Java
第五期:字符串的一些有意思的操作
第五期:字符串的一些有意思的操作
86 0
|
测试技术
字符串a和他许久未见面的同父异母的b(模拟)(思维)
字符串a和他许久未见面的同父异母的b(模拟)(思维)
75 0
|
Shell
Ansible概述和模块解释(你刚走过了今天,而扑面而来的却是昨天)(三)
Ansible概述和模块解释(你刚走过了今天,而扑面而来的却是昨天)(三)
249 0
Ansible概述和模块解释(你刚走过了今天,而扑面而来的却是昨天)(三)
|
运维 Devops Linux
Ansible概述和模块解释(你刚走过了今天,而扑面而来的却是昨天)(一)
Ansible概述和模块解释(你刚走过了今天,而扑面而来的却是昨天)(一)
200 0
Ansible概述和模块解释(你刚走过了今天,而扑面而来的却是昨天)(一)
|
Shell
Ansible概述和模块解释(你刚走过了今天,而扑面而来的却是昨天)(二)
Ansible概述和模块解释(你刚走过了今天,而扑面而来的却是昨天)(二)
218 0
Ansible概述和模块解释(你刚走过了今天,而扑面而来的却是昨天)(二)