shell脚本最好放在目录/usr/local/sbin下,便于管理。shell脚本的文件名通常都以“.sh”结尾。shell脚本的第一行一般以“#!/bin/bash”开头,表示该文件使用bash语法。“#”表示注释,后面跟脚本的注释内容、作者、创建日期或版本。以上这些均为非必须的,但是遵循它们更符合规范。
在linux中反引号的作用是将引号中的字符串当成shell命令执行,返回命令的执行结果。
脚本定义变量的格式为:“变量名=变量的值”。在脚本中引用变量时需要加上符号“$”。
脚本有预设变量,为$0和$n,n>0。执行脚本时,执行命令后面跟的第一个参数会赋值给$1,第二个参数会赋值给$2,以此类推。$0代表脚本本身的名字。
数学计算要用“[ ]”括起来,并且前面要加符号“$”。如:a=$[$b+$c]。
执行脚本的方法:
sh命令后跟脚本名可执行该脚本,如:sh script.sh。若加上“-x”选项可查看该脚本执行过程,如:sh -x script.sh。
切换到脚本所在的目录下,确保有该脚本的执行权限,输入“./脚本名 ”回车即可,如./script.sh。
if逻辑判断格式如下:
格式一:
if 判断条件;then
command
fi
格式二:
if 判断条件;then
command1
else
command2
fi
格式三:if 判断条件1;then
command1
elif 判断条件2;then
command2
else
command3
fi
在脚本的if判断语句中,若同一个if语句有多个判断条件,则它们可按照逻辑用“&&”或“||”相连,分别表示“并且”和“或者”。
若判断条件用两对小括号括起“((判断条件))”,则变量前的“$”可要可不要,“(( ))”与判断条件间可以紧挨着。判断条件中用判断符号:<(小于)、<=(小于等于)、>(大于)、>=(大于等于)、==(等于)、!=(不等于)。例子:a=88; if ((a>=80)) && ((a<90)); then echo good; fi。
若判断条件用一对中括号括起“[判断条件]”,则变量前必须加“$”,“[ ]”与判断条件间必须有空格。判断条件中用如下判断字符串:
判断大小字符串:
-lt:小于,less than。
-le:小于等于,less equal。
-gt:大于,great than。
-ge:大于等于,great equal。
-eq:等于,equal。
-ne:不等于,not equal。
例子:a=10; if [ $a -lt 1] || [ $a -gt 5 ]; then echo ok; fi。
判断文件字符串:
脚本常用命令:
date:
用法:date [选项]... [+格式]
常用选项:
-d,--date=“字符串”:显示指定字符串所描述的时间,而非当前时间。
-s, --set=“字符串”:设置指定字符串来分开时间。
常用格式:
+%Y:以四位数字格式打印年份。
+%y:以两位数字格式打印年份。
+%m:打印月份。
+%d:打印日期。
+%H:打印小时。
+%M:打印分钟。
+%S:打印秒。
+%w:打印星期。若结果为0则表示周日。
例子:
date +"%Y-%m-%d %H:%M:%S":打印日期格式为2015-01-01 00:00:00。
date -d "-1 day" +%d:打印前一天的日期(只有日)。
date -d "-1 hour" +%H:打印前一小时的小时。
date -d "-1 min" +%M:打印前一分钟的分钟。
read:
read命令用于和用户交互,它把用户输入的字符串作为变量值。
例子:
read -p "Please input a number:" x:执行之后,系统会将用户根据提示输入的数字赋值给变量x。双引号和x之间要有空格。