shell脚本:创建函数并指定目录进行下载

简介:

写一个脚本:

1、创建一个函数,能接受两个参数:

1)第一个参数为URL,即可下载的文件;第二个参数为目录,即下载后保存的位置;

2)如果用户给的目录不存在,则提示用户是否创建;如果创建就继续执行,否则,函数返回一个51的错误值给调用脚本;

3)如果给的目录存在,则下载文件;下载命令执行结束后测试文件下载成功与否;如果成功,则返回0给调用脚本,否则,返回52给调用脚本;

题目来源于51cto论坛帖子,参考大神的答案,然后自己完善做出来了,大家有更优秀的方法也不妨写出来。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#!/bin/bash
#writen by mofansheng @2015-08-10
url=$1
dir =$2
download()
{
         cd  $ dir  &> /dev/null
         if  [ $? - ne  0 ]
         then
         read  -p  "$dir No such file or directory,create now?(y/n)"  answer
                 if  "$answer"  ==   "y"  ]; then
                 mkdir  -p $ dir
                 cd  $ dir
                 wget $url &> /dev/null
                         if  [ $? - ne  0 ]; then
                         return  "52"
                         fi
                 else
                 return  "51"
                 fi
         else
         wget $url &> /dev/null
                 if  [ $? - ne  0 ]; then
                 return  "52"
                 fi
         fi
}
download $url $ dir
echo  $?

好多if判断有点迷糊了;


验证结果:

目录存在,则返回0,下载文件到已存在的目录里;

1
2
3
4
[root@localhost ~] # sh 1.sh http://www.baidu.com/index.php yong
0
[root@localhost ~] # ls yong/
index.php

目录不存在,提示是否要创建,选n不创建,则返回51;

1
2
3
[root@localhost ~] # sh 1.sh http://www.baidu.com/index.php fan
fan No such  file  or directory,create now?(y /n )n
51

目录不存在,提示是否要创建,选y创建,并且下载文件到新创建的目录里;

1
2
3
4
5
[root@localhost ~] # sh 1.sh http://www.baidu.com/index.php fan
fan No such  file  or directory,create now?(y /n )y
0
[root@localhost ~] # ls fan/
index.php

下载文件不成功,则返回52;

1
2
[root@localhost ~] # sh 1.sh http://www.baidu.com/xxxx.php 
fan52






本文转自 模范生 51CTO博客,原文链接:http://blog.51cto.com/mofansheng/1683714,如需转载请自行联系原作者

目录
相关文章
|
1天前
|
Shell
蓝易云 - 简单shell脚本的编写教程
以上就是编写一个基本Shell脚本的步骤。当然,Shell脚本可以做的远不止这些,你可以使用变量,控制结构(如if语句和循环),以及各种Shell命令和功能来编写更复杂的脚本。
11 1
|
11天前
|
Shell 开发者
Shell 函数深入解析与实践
了解 Shell 函数的基础,包括定义、参数传递及返回值。函数定义有多种语法,如 `function func() {...}` 或 `func() {...}`。参数通过 `$1`, `$2` 等访问,`$@` 代表所有参数。`return` 用于返回退出状态码(0-255),非数值数据需用 `echo`。正确获取函数返回值应立即检查 `$?`,例如:`result=$?`。实践中不断探索和学习!
10 1
|
13天前
|
监控 Shell Linux
Linux的Shell脚本详解
Linux的Shell脚本详解
|
17天前
|
Shell
shell脚本
shell脚本
18 2
|
2天前
|
Shell 调度
Shell脚本中的if条件判断语句
Shell脚本中的if条件判断语句
|
2天前
|
Shell
蓝易云 - 简单shell脚本的编写教程
以上就是编写一个基本Shell脚本的步骤。当然,Shell脚本可以做的远不止这些,你可以使用变量,控制结构(如if语句和循环),以及各种Shell命令和功能来编写更复杂的脚本。
4 0
|
3天前
|
机器学习/深度学习 Unix Java
技术笔记:Linux之Shell脚本编程(一)
技术笔记:Linux之Shell脚本编程(一)
|
6天前
|
Shell
Shell脚本之条件语句if总结
Shell脚本之条件语句if总结
|
10月前
|
Shell
shell编程之函数
shell编程之函数
51 1
|
2月前
|
Shell
Shell 编程快速入门 之 函数基础知识
Shell 编程快速入门 之 函数基础知识
75 0
Shell 编程快速入门 之 函数基础知识