shell编程基础知识点小结
目录
- 1.shell是命令解释器,可以解释命令
- 2.shell脚本是用命令写成的一个可执行的文件
- 3.shell脚本的用途
- 4.编译型语言;
- 5.解释型语言;
- 6.centos的默认解释器是
- 7.父shell的环境变量,子shell可以看到
- 8.子shell的环境变量,父shell不可以看到
- 9.shell执行的方式
- 10.脚本顶格添加解释器声明
- 11.退出shell的命令是
- 12.环境变量也叫全局变量
- 13.环境变量的四个执行文件顺序
- 14.普通变量只能在当前shell下使用
- 15.用source执行和用bash执行的区别
- 16.参数特殊变量
- 17.进程特殊变量
- 18.变量子串
- 19.字符串测试表达式
- 20.整数二元比较操作符
- 21.逻辑操作符
1.shell是命令解释器,可以解释命令
2.shell脚本是用命令写成的一个可执行的文件
3.shell脚本的用途
批量管理
代码上线
定时备份,定时启停服务
系统监控,服务监控
日志切割,分析
4.编译型语言;
通过某种高级语言翻译成可被系统识别的二进制码
5.解释型语言;
通过解释器对源程序的二进制码进行解释并执行
6.centos的默认解释器是
bash sh
7.父shell的环境变量,子shell可以看到
8.子shell的环境变量,父shell不可以看到
9.shell执行的方式
sh &bash
cat *.sh|bash
sh < *.sh
/server/scripts/*.sh 可执行
source *.sh
. *.sh
10.脚本顶格添加解释器声明
#!/bin/bash
添加作者 时间 版本号 注释
11.退出shell的命令是
exit
12.环境变量也叫全局变量
定义方式;export 变量名=变量值
13.环境变量的四个执行文件顺序
/etc/profile--->~/.bash_profile--->~/.bashrc--->/etc/bashrc
登录加载所有
非登录式加载后两个
14.普通变量只能在当前shell下使用
不加引号:适用于一般场景,不能带空格 export 变量名=变量值
单引号:所见即所得 export 变量名='变量值'
双引号:解析双引号内的变量 export 变量名="变量值"
反引号:强制命令解析 export 变量名=`命令`
变量后有内容需要用{} echo ${name}5
15.用source执行和用bash执行的区别
source可以越权的,bash不可以越权(父子shell)
用source或"."执行的脚本,变量会在父shell下生效,用bash执行的脚本,变量不会再父shell下生效。
16.参数特殊变量
$0 获取脚本文件名,如果带路径则包括完整路径
$n 获取脚本的第n个参数,如$1 $2
$# 脚本的参数个数
$* 显示脚本所有的参数
$@ 显示脚本所有的参数
17.进程特殊变量
$? 命令执行的状态,0正确 非0错误
$$ 脚本当前进程ID号
$! 后台运行最后一个进程的ID号
$_ 脚本的最后一个参数
18.变量子串
${name} 返回变量内容
${#name} 返回变量字符长度
${name:5}从变量的第五个字符提取子串到结尾
${name:5:3}从变量的第五个字符提取长度为3的子串
${name#abc}删除变量开头最短匹配的子串
${name##abc}删除变量开头最长匹配的子串
${name%abc}删除变量结尾最短匹配的子串
${name%%abc}删除变量结尾最长匹配的子串
${name/abc/ABC}将变量的第一个abc替换为ABC
${name//abc/ABC}将变量所有的abc替换为ABC
19.字符串测试表达式
[ "$a" = "$b" ] 是否相等 赋值不能有空格 判断时必须有空格
[ "$a" != "$b" ]是否不相等
[ -n "$name" ] 是否非空
[ -z "$name" ] 是否为空
[ $name ] 是否非空
20.整数二元比较操作符
-eq 等于
-ne 不等于
-gt 大于
-ge 大于等于
-lt 小于
-le 小于等于
21.逻辑操作符
-a == && and 与运算 两端都真则为真
-o == || or 或运算 两端有一个为真则为真
! != not 非 相反为真
相信可能就有无限可能,拒绝拖延!