shell脚本一系列命令的集合,做操作系统配置
shell编程:解释型语言,边翻译边执行,擅长文件处理,操作系统管理,开发效率高 cp 1 2,执行效率低,移植性好
.c :编译型语言,先编译再执行,擅长数据计算和数据处理,开发效率低,执行效率高,移植性差
shell命令解释器,bash
shell脚本的本质就是一系列shell命令的集合
1.shell脚本编写流程:
(1.vim XX.sh #!/bin/bash(顶行用bash解释) .sh后缀区分.c,确认脚本文件
(2.编写脚本
(3.chmod +x XX.sh +x为添加执行权限
(4. ./XX.sh
ll:ls详细显示
-rwxr-xr-x
2.shell变量
1.环境变量: env
PATH:保存当前工作的默认路径 系统路径,多个路径以:隔开
PWD:当前所在的工作路径
HOME:当前登录用户的家目录
...
main(int argc,char* argv[])
2.位置变量: ./3.sh /etc/passwd 123 456 内置变量
$0:脚本文件名
$1:传入脚本的第一个参数
$2:传入脚本的第二个参数
...
$9:
$(10)
$#:传入参数的个数
$?:上一句shell命令执行的结果
$$:当前shell的PID
a=123
3.shell脚本输入输出
read a
echo '$a'
4."":打印字符串,遇到$变量则打印变量中的值
'':打印字符串,遇到$变量依然打印$变量
``:将中间的字符串按照命令打印
变量赋值两边不打空格 a=b
数学运算a=2 b=3 c=`expr $a \* $b` \*代表*
分支语句:
1.if语句
if 条件
then
语句
else
语句
fi
if []
then
elif []
then
elif []
then
else
fi
if []
then
fi;
-a and
-o or
test -eq 相等 test 10 -eq $i [ $i -eq 10 ] if( a == 10)
-ne 不相等
-gt 大于
-lt 小于
-ge 大于等于
-le 小于等于
[ $i ge 0 -a $i lt 59 ]
-b 块设备文件 test -b /dev/usb0
-c 字符设备文件
-d 目录文件
-f 普通文件
-L 链接文件
-S 套接字文件
-p 管道文件
2.case
case $num in (num默认为字符串)
9)语句
;;
8|||)语句
;;
7)语句
;;
*)语句
;;
esac
循环语句
(1)while [ 条件 ]
do
语句
...
done
(2)for i in 1 2 3 4 5
do
语句
done
(3)until [条件]
do
语句
done