Linux Shell脚本教程
2016-04-13 17:38
399 查看
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
********************************* 2017-06-26 **********************************
怎样给 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
********************************* 2017-06-26 **********************************
怎样给 shell 传参?
$ ./test.sh 1 2 3 在 shell 代码里面,通过 $0,$1,$2 获取这三个参数
相关文章推荐
- shell script中的 if判断,及test命令
- Java提取两个文件夹中的有差异的文件并生成相应的shell脚本
- shell各类脚本
- 开机小脚本自动打开sublime text 和git-bash
- 在CentOS7.2安装Jdk1.8和resin4.0.45的步骤及shell脚本
- Linux下Bash编程之條件判斷详解(二)
- Linux下Shell编程实现基于Hadoop的ETL(流程篇)
- Linux下Shell编程实现基于Hadoop的ETL(导出篇)
- Linux下Shell编程实现基于Hadoop的ETL(分析篇)
- shell变成之条件判断和流程控制
- Linux下Shell编程实现基于Hadoop的ETL(Sqoop封装篇)
- shell脚本学习小记
- Linux下Shell编程实现基于Hadoop的ETL(导入篇)
- shell脚本,在不同目录下新建同名文件,并添加内容
- 出于学习的目的,写了个桌面右键菜单
- SHELL test [ 命令用法
- Powershell查看AD用户组的成员数量
- [知其然不知其所以然-21] why our shell is so slow
- shell字符串处理-数组-expect
- shell 基础