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,如需轉載請自行聯絡原作者
相關文章
- Java 從指定URL下載檔案並儲存到指定目錄Java
- git下載倉庫指定目錄Git
- 從標準輸入流中讀取並執行shell指定函式函式
- proc_create_data函式建立/proc/目錄下的檔案函式
- shell指令碼獲取函式返回值指令碼函式
- 前端利用Blob物件建立指定檔案並下載前端物件
- 建立互動式shell指令碼對話方塊指令碼
- shell高階-----建立函式函式
- windows下啟動cmd,開啟指定目錄,執行指定命令Windows
- Godot遍歷目錄下檔案,並建立按鈕Go
- 執行shell指令碼指令碼
- 使用thin jar啟動並指定lib目錄JAR
- 使用shell指令碼對Nginx日誌進行切分指令碼Nginx
- 刪除指定目錄下指定字尾的檔案
- shell指令碼正規表示式指令碼
- shell指令碼技巧—建立和清空檔案指令碼
- 使用 PHP 進行建立檔案並在下載後進行刪除PHP
- shell指令碼(14)-正規表示式指令碼
- 【工具使用】【Shell指令碼】【gitlab】下拉所有的倉庫程式碼並指定分支推送給客戶倉庫指令碼Gitlab
- shell指令碼中main函式中$#獲取不到指令碼傳入引數個數淺析指令碼AI函式
- python同異級目錄下的函式呼叫問題Python函式
- Linux shell:執行shell指令碼的幾種方式Linux指令碼
- shell指令碼指令碼
- Mac 終端執行 shell 指令碼Mac指令碼
- shell指令碼while迴圈、read讀取控制檯輸入與函式指令碼While函式
- 如何使用SHC對Shell指令碼進行封裝和原始碼隱藏指令碼封裝原始碼
- shell函式函式
- 多執行緒下載nginx站點目錄下檔案執行緒Nginx
- 寶塔計劃任務Shell指令碼定時刪除某各目錄下所有檔案【記錄】清理快取好方法指令碼快取
- JS指令碼載入後執行相應回撥函式JS指令碼函式
- shell的引數和指令碼流程改進指令碼
- shell指令碼linux命令連續執行指令碼Linux
- shell指令碼案例指令碼
- 常用shell指令碼指令碼
- Linux Shell指令碼Linux指令碼
- 對於C#winform介面開發中開啟指定的目錄及開啟指定目錄下的檔案C#ORM
- MySQL函式查詢目錄樹問題記錄MySql函式
- shell指令碼(6)-shell陣列指令碼陣列
- windows 批處理備份目錄指令碼Windows指令碼