2015-06-14shell脚本编程1

内容概要:
1. shell脚本是什么
它是一种脚本语言,并非编程语言
可以使用一些逻辑判断、循环等语法
可以自定义子函数
是系统命令的集合
shell脚本可以实现自动化运维,大大增加我们的工作效率
2. shell脚本结构以及执行方法
开头行指定bash路径: #! /bin/bash
以#开头的行作为解释说明
脚本的名字以.sh结尾,用于区分这是一个shell脚本
执行方式有两种:chmod +x 1.sh; ./1.sh 如果没有执行权限可以 bash 1.sh
bash -x 1.sh 可以查看脚本执行过程
3. 学会date命令的用法
date  +%Y-%m-%d, date +%y-%m-%d    = date +%F 年月日
date  +%H:%M:%S = date +%T 时间
date +%s  时间戳
date -d @1434248742
date -d "+1day"一天后date -d "-1day"一天前
date -d  "-1month" 一月前
date -d  “-1min” 一分钟前
date +%w, date +%W 星期
4. shell脚本中的变量
当脚本中使用某个字符串较频繁并且字符串长度很长时就应该使用变量代替
使用条件语句时,常常使用变量    if [ $a -gt 1 ]; then ... ; fi
引用某个命令的结果时,用变量替代   n=`wc -l 1.txt`
写和用户交互的脚本时,变量也是必不可少的  read -p "Input a number: " n; echo $n   如果没写这个n,可以直接使用$REPLY
内置变量 $0, $1, $2…    $0表示脚本本身,$1 第一个参数,$2 第二个 ....       $#表示参数个数
数学运算a=1;b=2; c=$(($a+$b))或者$[$a+$b]
5. shell中的逻辑判断
格式1:if 条件 ; then 语句; fi
格式2:if 条件; then 语句; else 语句; fi
格式3:if …; then … ;elif …; then …; else …; fi
逻辑判断表达式:if [ $a -gt $b ]; if [ $a -lt 5 ]; if [ $b -eq 10 ]等 -gt (>); -lt(<); -ge(>=); -le(<=);-eq(==); -ne(!=) 注意到处都是空格
可以使用 && || 结合多个条件
6. if 判断文件、目录属性
[ -f file ]判断是否是普通文件,且存在
[ -d file ] 判断是否是目录,且存在
[ -e file ] 判断文件或目录是否存在
[ -r file ] 判断文件是否可读
[ -w file ] 判断文件是否可写
[ -x file ] 判断文件是否可执行

时间: 2024-11-07 19:01:48

2015-06-14shell脚本编程1的相关文章

Linux归档压缩、脚本编程之循环控制

一.Linux归档压缩 在一些备份服务器上为了节省硬盘空间以存储更多的内容,压缩是一个不错的选择,虽然压缩是拿cpu的时间去换硬盘空间有时并不合算.Linux的压缩工具一般只能压缩单个文本文件,如果要压缩一个目录,就必须先将目录打包归档.Linux有很多不同的压缩的工具,一般压缩比越大可能占用cpu的时间更长,下面来瞧一瞧Linux有哪些常用的工具吧. 1.compress.uncompress和zcat:压缩,展开数据,压缩文件后缀是.Z,此压缩工具已过时. compress压缩默认会删除原文

【VI Script】你不知道的脚本编程

前言 近期,小黑在写程序的时候,经常会遇到一些重复性的工作.尤其是在写到QMH(Queued Message Handler)程序时,经常需要创建UI界面上的一些控件引用,并且在程序中捆绑成簇使用. 今天,小黑将以JKI StateMachine来介绍脚本编程,通过一些脚本编程来简化机械开发,让自己的程序6的飞起. 设计说明 JKI状态机中,在 "Initialize Core Data" 分支里,我们通常需要初始化一些数据,当涉及到UI界面上属性的一些变化时,需要将引用作为关键数据结

《高级Bash脚本编程指南》十年来首次修订

新年伊始,开源慕课的知识库上线了.初期提供了<Linux命令大全/Bash 参考><高级Bash脚本编程指南>两个系列.其他资料正将陆续上线. 其中,<高级Bash脚本编程指南>对于Shell学习者来说,是一本神一样的书籍. 它的原作者是Mendel Cooper,英文名叫<Advanced Bash-Scripting Guide>发表在http://tldp.org/ 上,是一本免费的书籍. 有人说,学习Unix/Linux,有座山叫shell编程,你总

Shell脚本编程具体解释

第12章 Shell脚本编程   l  Shell命令行的执行 l  编写.改动权限和运行Shell程序的步骤 l  在Shell程序中使用參数和变量 l  表达式比較.循环结构语句和条件结构语句 l  在Shell程序中使用函数和调用其它Shell程序 12-1   Shell命令行书写规则 u  Shell命令行的书写规则 对Shell命令行基本功能的理解有助于编写更好的Shell程序,在执行Shell命令时多个命令能够在一个命令行上执行,但此时要使用分号(:)分隔命令,比如: [[emai

Shell脚本编程初体验

Shell脚本编程初体验 分类 编程技术 通 常,当人们提到"shell脚本语言"时,浮现在他们脑海中是bash,ksh,sh或者其它相类似的linux/unix脚本语言.脚本语言是与计算机 交流的另外一种途径.使用图形化窗口界面(不管是windows还是linux都无所谓)用户可以移动鼠标并点击各种对象,比如按钮.列表.选框等等.但 这种方式在每次用户想要计算机/服务器完成相同任务时(比如说批量转换照片,或者下载新的电影.mp3等)却是十分不方便.要想让所有这些事情变得简单并 且自动

压缩工具及bash脚本编程

回顾: RAID: 不同的服务器配置起来他的借口可能配置起来有所不同,但是官方一般都提供响应的说明书,按照说明书进行配置就行.关键是理解RAID级别的机制的意义是什么 LVM: 其实是一个逻辑设备他存在的主要作用是提供卷管理操作,我们称之为"volume", 卷管理操作的目的主要是实现把一个或多个底层的物理设备给组织成一个逻辑设备,我们可以将底层的任何类型的块设备,包括我们常见的基本磁盘分区,或者甚至是RAID都OK,只要他们提供块级别的存储空间,但是考虑到任何单个硬件设备他们的边界都

Bash Shell脚本编程笔记总结(二)

本文接上一部分:Bash Shell脚本编程笔记总结(一) 数组: 连续的多个独立内存空间,每个内存空间相当于一个变量 数组元素:数组名+索引 索引:从0开始编号 声明数组: declare -a ARRAR_NAME 关联数组: declare -A ARRAY_NAME 支持稀疏格式: 数组元素的赋值: (1) 一次只赋值一个元素 ARRAY[index]=VALUE a[0]="hello" (2) 一次赋值全部元素 ARRAY=("mon" "tu

Linux系统裁剪之二(Bash脚本编程之十二)

Linux系统裁剪之二(Bash脚本编程之十二) 系统函数库 ·Linux系统的启动流程     1,POST(加电自检) 计算机本身并不会执行程序,它只是一堆破铜烂铁,但是它可以在开机的时候先去载入一段程序,系统在刚刚启动的时候能够实现将某个ROM芯片中的程序映射到CPU能够寻址的地址空间中去,并且让CPU能够执行其中的指令,这些指令大部分都是用来做系统检测的,当检测完成后,如果系统中所有的基本硬件和核心硬件都没有问题的话,接下来就会根据BIOS中设定的系统启动次序(Boot Sequence

Linux下的shell脚本编程-变量-算术表达式-判断语句-if分支语句

Linux下的shell脚本编程-变量-算术表达式-判断语句-if分支语句 一:实验环境 1):虚拟机 2):linux系统 二:实验目标 1): shell 基本语法 2):变量 3):表达式 4):判断语句 5): if表达式 三:实验脚本 第一块 一个简单的shell脚本程序 [[email protected] ~]# mkdir test [[email protected] test]# vim example1.sh #!/bin/bash #This is to show wha

学习Shell脚本编程(第2期)_编写修改权限及执行Shell程序的步骤

编写Shell程序 执行Shell程序 Shell程序有很多类似C语言和其他程序设计语言的特征,但是又没有程序语言那样复杂.Shell程序是指放在一个文件中的一系列Linux命令和实用程序.在执行的时候,通过Linux操作系统一个接一个地解释和执行每条命令.首先,来编写第一个Shell程序,从中学习Shell程序的编写.修改权限.执行过程. 2.1 编辑Shell程序 编辑一个内容如下的源程序,保存文件名为date,可将其存放在目录/bin下. [[email protected] bin]#v