一、Shell脚本种类:SH,CSH,KSH,BASH
二、创建修改执行脚本:
touch name.sh //创建
vim name.sh //写脚本
chmod a+x name.sh //修改脚本文件权限
./name.sh //执行脚本
三、Shell脚本用途:
1、 自动化数据采集
2、 数据处理
3、 与编程语言协同使用
四、简单的shell脚本语言:
1、 最简单的shell脚本
#!/bin/bash
echoHello,World!
2、等差数列求和:
#!/bin/bash
do
sum=$(expr$sum + $i)
done
echo$sum
4、 shell中无需声明变量类型,可直接赋值
a=1
b=1234.abc
array[0]=1
array[1]=abc
echo ${array[0]} 显示数组中第一个元素
echo ${array[@]} 显示数组中所有元素
5、 expr 用法
expr 1 + 2
expr 1 \* 2 使用乘号时,必须用反斜线屏蔽其特定含义
例:
#!/bin/bash
a=2
b=3
a=$(expr $a + $b)
b=$(expr $a \* $b)
echo $a $b
6、 输出:
a) echo $a
echo –e “$a\t123”
-e 参数指解释特殊符号,如水平制表符\t,换行\n
b) printf <格式化字符串>
printf“%s\tabc\n” $a
%s字符串 %d 整数
%20s字符串占20位(右对齐)
%-20s 字符串占20位(左对齐)
7、接受参数: ./a.sh 参数1 参数2
#!/bin/bash
echo$0 脚本名
echo$1 第一个参数
ehco$# 参数个数
8、例:
a=’cat /etc/passwd|wc -l’
echo $a
a=$(cat /etc/passwd|wc -l)
echo $a
9、例:
#!/bin/bash
echo$1 * $2 = $(expr $1 \* $2)
10、exit 语句 执行到此句即退出
11、echo $? 判断上一条命令的执行情况(值范围为0到127)
12、判断if语句
例:
#!/bin/bash
a=1
iftest $a –lt 10
then
echo$a<10
else
echo&a>=10
fi
-lt小于 –gt 大于–le 小于等于–ge 大于等于
13、命令1 && 命令2 命令1成功执行后才执行命令2
命令1 || 命令2 命令1执行失败后才执行命令2
14、case语句
例:
#!/bin/bash
case$1 in
1)
echo1
2)
echo2
3)
echo3
*) echo err
esac
15、echo 123|mail –s titleroot@localhost
vim/var/spool/mail/root