shell脚本
SHELL将任何赋给变量的值都解释为字符串。
新建脚本:vi 文件名.sh
脚本开头:#! /bin/bash
执行脚本:sh 文件名.sh
看我用的机器支持那种类型的sh脚本:echo $SHELL
一.命令:
date:显示时间
pwd:显示路径
二.$:变量引用符。
单引号:命令替换符。
- today=`date`
- echo today is $today
注:此处today是变量,需要用变量的引用符号$来引用其值。
变量名可以由数字,字符和下划线组成,但是变量名只能由字符和下划线开头,而不能是数字。
shell脚本中的变量将保存在内存中,直到该shell脚本结束或终止。也可以用unset命令清除变量。
exit 0:退出当前shell。
- -e 解释转义字符
三.
$0:表示这个程序的文件名
$1 $2 ... $9:这个程序的第1个到第9个命令行参数值
$#:这个程序的参数个数(不包含命令名)
$*:这个程序的所有参数:“$1 $2 … $9”,把所有的参数保存在一个串中
$!:执行上一个背景指令的PID
$?:执行上一个指令的返回值。
$$:这个程序的进程ID号
四.
- 该命令提供算术运算功能,并能对数字或非数字字符串进行计算。
- expr命令将参数作为表达式,计算该表达式并将结果显示在标准输出设备上。
五.
- 字符*(乘)在shell中有特殊含义,因此他们的前面必须有转义字符“\”
- 如:expr2 \* 5
- 当有变量参与运算时,需要在变量名前面加“$”
- 如:a=11
- expr $a \% 2
六.
七.
shell脚本的控制语句
控制流命令用来调整在shell脚本中命令的执行顺序,
if语句:
if......then......fi控制语句
if......then......else控制语句
if......then......elif控制语句
条件测试:
test语句
循环结构:
while控制结构
util控制结构
for......in控制结构
for控制结构
break和continue
case语句:
if......then......fi结构
语句格式:
if [ condition ]
then
commands
fi
......
注:条件外面的[ ]必不可少,条件前后必须加空格。
if......then......else......fi结构
语法格式:
if [ condition ]
then
true - commands
else
false - commands
fi
一.
二.
a+=$b----->a=a+b或a=$a+$b
三.IF--THEN--ELSE--FI
四.有关文件方面的测试
可以用test命令检测文件属性,如文件长度、文件类型和文件权限等。
操作符 功能
-r 文件是否存在并且用户可读
-w 文件是否存在并且用户可写
-x 文件是否存在并且用户可执行
-s 文件是否存在并且长度非0
-f 文件是否存在并且是普通文件
-d 文件是否存在并且是目录文件
五.if---then---elif---else--fi