Linux Shell脚本教程
v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
Normal
  0
  false
7.8 磅
  0
  2
false
  false
  false
EN-US
  ZH-CN
  X-NONE
/* Style Definitions */
 table.MsoNormalTable
	{mso-style-name:普通表格;
	mso-tstyle-rowband-size:0;
	mso-tstyle-colband-size:0;
	mso-style-noshow:yes;
	mso-style-priority:99;
	mso-style-qformat:yes;
	mso-style-parent:"";
	mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
	mso-para-margin:0cm;
	mso-para-margin-bottom:.0001pt;
	mso-pagination:widow-orphan;
	font-size:10.5pt;
	mso-bidi-font-size:11.0pt;
	font-family:"Calibri","sans-serif";
	mso-ascii-font-family:Calibri;
	mso-ascii-theme-font:minor-latin;
	mso-hansi-font-family:Calibri;
	mso-hansi-theme-font:minor-latin;
	mso-font-kerning:1.0pt;}
Linux Shell脚本教程
一.背景
单纯的PHP也可以实现断点续传下载,但单纯的PHP实现代码会比较复杂,而且没有多线程下载,速度会比较慢。所以放弃PHP下载的方案,用linux下的axel命令实现。
二.shell教程
1. 变量定义。
使用变量,最好都加 {} 边界符
2. 注释
没有多行注释,只能每一行加一个#号。但可以通过其它变通的方法实行多行注释,在编辑器不会着色,有兴趣的自行搜索。
3. 调用linux命令
不需要返回直接调用的:cd ${path}/cdn_log_download/echo/;rm
-f $f_name
有返回的:del_month=`date
+"%Y-%m" -d "-2month"`
使用命令实现算术运算:length=`expr
${#file_name_arr[*]} - 1`
使用命令实现关系运算:$val -eq
0
使用tr 命令分割字符:($(echo
$download_list | tr "||" "\n"))
例子:
将所以上上个月下载日志文件删除
del_list=`cd
/home/domaininfo/cdn_log_download/echo/;ls --full-time | awk '{ print $6,$9 }'
| grep "2015-12"`
通道符:|
awk
grep:grep –rn “echo” *
4. 调用PHP,并传参
download_list=`cd
${path};/usr/bin/php cdn_log_download.php 'get_list'` 
5. 数组
定义多个数组,可以通过空格和换行符来实现
读取数组:f_name=${del_arr[$i]}
获取数组长度:${#del_arr[*]}
6. while循环

7. if else语句
8. break和continue命令
9. 判断文件夹或文件是否存在
if [ ! -f "$echo_path" ]
if [ ! -d "$save_file_path" ]
10. 输出重定向
$ who > users 覆盖
$ who >> users 追加
11. 文件名定义和执行
xxx.sh
./xxx.sh
********************************* 2016-07-06 **********************************1. 提示没有权限
chmod +x test.sh
Normal
  0
7.8 磅
  0
  2
false
  false
  false
EN-US
  ZH-CN
  X-NONE
/* Style Definitions */
 table.MsoNormalTable
	{mso-style-name:普通表格;
	mso-tstyle-rowband-size:0;
	mso-tstyle-colband-size:0;
	mso-style-noshow:yes;
	mso-style-priority:99;
	mso-style-qformat:yes;
	mso-style-parent:"";
	mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
	mso-para-margin:0cm;
	mso-para-margin-bottom:.0001pt;
	mso-pagination:widow-orphan;
	font-size:10.0pt;
	font-family:等线;}
Linux Shell脚本教程的更多相关文章
- 学习笔记之Linux Shell脚本教程:30分钟玩转Shell脚本编程
		
Linux Shell脚本教程:30分钟玩转Shell脚本编程 http://c.biancheng.net/cpp/shell/
 - Linux Shell脚本教程:30分钟玩转Shell脚本编程
		
http://c.biancheng.net/cpp/shell/ Linux在线体验: http://compileonline.com/ Linux命令查询: http://man.linuxde ...
 - Linux Shell系列教程之(二)第一个Shell脚本
		
本文是Linux Shell系列教程的第(二)篇,更多shell教程请看:Linux Shell系列教程 通过上一篇教程的学习,相信大家已经能够对shell建立起一个大体的印象了,接下来,我们通过一个 ...
 - Linux Shell系列教程之(十五) Shell函数简介
		
本文是Linux Shell系列教程的第(十五)篇,更多Linux Shell教程请看:Linux Shell系列教程 函数可以将一个复杂功能划分成若干模块,从而使程序结构更加清晰,代码重复利用率更高 ...
 - Linux Shell系列教程之(十四) Shell Select教程
		
本文是Linux Shell系列教程的第(十四)篇,更多Linux Shell教程请看:Linux Shell系列教程 在上一篇文章:Linux Shell系列教程之(十三)Shell分支语句case ...
 - Linux Shell系列教程之(十三)Shell分支语句case … esac教程
		
本文是Linux Shell系列教程的第(十三)篇,更多Linux Shell教程请看:Linux Shell系列教程 分支语句非常实用,基本上高级语言都支持分支语句(python 没有),大多数都使 ...
 - Linux Shell系列教程之(十二)Shell until循环
		
本文是Linux Shell系列教程的第(十二)篇,更多Linux Shell教程请看:Linux Shell系列教程 在上两篇文章Linux Shell系列教程之(十)Shell for循环和Lin ...
 - linux shell 脚本攻略学习20--awk命令入门详解
		
awk生于1977年,创始人有三个,分别为 Alfred Aho,Peter Weinberger, 和 Brian Kernighan,名称源于三个创始人的姓的首字母. 作用:处理文本文件. awk ...
 - (转)Linux Shell系列教程之(十四) Shell Select教程
		
本文属于<Linux Shell 系列教程>文章系列,该系列共包括以下 18 部分: Linux Shell系列教程之(一)Shell简介 Linux Shell系列教程之(二)第一个Sh ...
 
随机推荐
- Socket 通信原理(Android客户端和服务器以TCP&&UDP方式互通)
			
转载地址:http://blog.csdn.net/mad1989/article/details/9147661 ZERO.前言 有关通信原理内容是在网上或百科整理得到,代码部分为本人所写,如果不当 ...
 - 批处理 —— 每天生成一个以日期命名的文件(Win XP)
			
想达到这样一个效果:每天在某个目录下生成一个以日期命名的文件(如,0705.txt). 第一步,新建一个批处理文件 新建一个文件,比如[create_day_file.bat].编辑,输入以下内容 : ...
 - 寻找最小的k个数
			
1. 能想到的最直接的办法,就是对数组进行排序,最好的排序算法的时间复杂性为O(n*logn),这一个方法请参照各种排序算法. 2. 另外申请一个k空间数组,依次更改里面的最大值,每做一次最多要扫描一 ...
 - 32-语言入门-32-Triangular Sums
			
题目地址: http://acm.nyist.net/JudgeOnline/problem.php?pid=122 描述The nth Triangular number, T(n) = 1 ...
 - 《OD大数据实战》Flume入门实例
			
一.netcat source + memory channel + logger sink 1. 修改配置 1)修改$FLUME_HOME/conf下的flume-env.sh文件,修改内容如下 e ...
 - Linux系统信息查看命令
			
一.系统 # uname -a #查看内核/操作系统/CPU信息 # head -n 1 /etc/issue #查看操作系统版本 # cat /proc/cpuinfo #查看CPU信息 # hos ...
 - 图片缓存之内存缓存技术LruCache,软引用
			
每当碰到一些大图片的时候,我们如果不对图片进行处理就会报OOM异常, 这个问题曾经让我觉得很烦恼,后来终于得到了解决, 那么现在就让我和大家一起分享一下吧. 这篇博文要讲的图片缓存机制,我接触到的有两 ...
 - 为Gradle添加UTF-8支持
			
gradle默认使用系统字符编码,大多数中文系统是使用GBK编码 但程序员绝大部分都是使用UTF-8写各类java文件以及其他资源文件 编译时很容易报错,比如下面的错误: ”警告:编码 GBK 的不可 ...
 - HDU 3544 (不平等博弈) Alice's Game
			
切巧克力的游戏,想得还是不是太明白. 后者会尽量选前着切后其中小的一块来切,那么先手须尽量取中间来切. So?题解都是这么一句话,不知道是真懂了还是从别人那抄过来的. 后来找到一个官方题解,分析得比较 ...
 - Java 炫舞按键功能 DancingPlay (整理)
			
/** * Java 炫舞按键功能 DancingPlay (整理) * 2016-1-2 深圳 南山平山村 曾剑锋 * * 设计声明: * 1.本次设计是模仿QQ炫舞类游戏,当图标到红色的检测区域时 ...