Fork me on GitHub

shell编程基础知识点小结

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 非	相反为真
posted @ 2019-08-19 09:52  lcx1997  阅读(199)  评论(0编辑  收藏  举报