一、解释型语言和编译型语言的比较
1、shell编程(解释型语言):
- 边翻译边执行
- 擅长文件处理,操作系统管理
- 开发效率高
- 执行效率低
- 移植性好
2、 .c(编译型语言):
- 擅长数据计算和数据处理
- 开发效率低
- 执行效率高
- 移植性差
二、shell脚本编程
shell脚本的本质就是一系列shell命令的集合
1.shell脚本编写流程:
- (1)、vim XX.sh #!/bin/bash
- (2)、编写脚本
- (3)、chmod +x XX.sh
- (4)./XX.sh
2.shell变量
(1)、环境变量: env
- PATH:保存当前工作的默认路径
- PWD:当前所在的工作路径
- HOME:当前登录用户的家目录
(2)、位置变量: ./3.sh /etc/passwd 123 456 内置变量
- $0:脚本文件名
- $1:传入脚本的第一个参数
- $2:传入脚本的第二个参数
- ...
- $9:
- cp /etc/456 ./
- $#:传入参数的个数
- $?:上一句shell命令执行的结果
- $$:当前shell的PID
(3)、shell脚本输入输出
- read a
- echo '$a'
(4)、引号的作用
- " ":打印字符串,遇到$变量则打印变量中的值
- ' ':打印字符串,遇到$变量依然打印$变量
- ` `:将中间的字符串按照命令打印
2、分支语句:
(1)、if语句
if [ 条件 ] 或 if test 条件
then
语句
else
语句
fi
if 条件
then
语句
elif [ 条件 ]
then
语句
elif [ 条件 ]
then
语句
else
语句
fi
if [ 条件 ]
then
语句
fi;
- -a 等价于 and
- -o 等价于 or
- -eq 相等
- -ne 不相等
- -gt 大于
- -lt 小于
- -ge 大于等于
- -le 小于等于
- -b 块设备文件
- -c 字符设备文件
- -d 目录文件
- -f 普通文件
- -L 链接文件
- -S 套接字文件
- -p 管道文件
(2)、case语句
case $num in
9)语句
;;
8| | | )语句
;;
7)语句
;;
*)语句
;;
esac
(3)、循环语句
while [ 条件 ]
do
语句
...
done
for xx in xx
do
语句
done
until [ 条件 ]
do
语句
done