Linux系统最重要的工具——Shell学习笔记
一、为什么学习Shell脚本语言
1.Shell脚本语言是实现Linux/UNIX系统管理及自动化运维必备的重要工具,Linux/UNIX系统底层及
基础应用软件的核心大都涉及Shell脚本的内容。
2.每一个合格的运维工程师都需要熟练编写Shell脚本语言,并能够阅读系统及各类软件附带的Shell
脚本内容。只有这样才能提升运维人员的工作效率,适应日益复杂的工作环境,减少不必要的重复工作
,从而为个人的职场发展奠定较好的基础。
二、流程控制
过程式编程语言:
顺序执行
选择执行
循环执行
三、Shell实战
1.脚本就是命令的堆叠
2.条件选择if语句
1)单分支
if 判断条件;then
条件为真的分支代码
fi
2)双分支
if 判断条件;then
条件为真的分支代码
else
条件为假的分支代码
fi
3)多分支
if 判断条件;then
条件为真的分支代码
elif 判断条件;then
条件为真的分支代码
else
条件为假的分支代码
fi
3.递归运算
例:阶乘
1)定义函数
fact(){
if[ $n -eq 0 -o $ -eq 1 ];then
echo 1
else
echo $[n*(fact (n-1))]
fi
}
2)调用函数
fact $n
3)保存运行测试
4.echo $?
? 判断命令执行是否成功,执行成功返回0,执行失败返回非空值,127表示指令未找到。
例题:ping -cl www.baidu.com && echo "www.baidu.com is up" || echo "www.baidu.com is down"
5.编译型语言和解释型语言的执行方式对比
#!官方称为shebang 用于定义该文件由哪个解释器来执行
程序设计语言分为编译型和解释型两种,C、Java等是编译型语言,shell和python为解释型语言。
编译型语言编写的程序执行效率比解释型语言的执行效率要高,编译型语言提前编排了程序逻辑,
C编译后将代码转换成了汇编语言。而Java将代码转化为了字节码,能被JAVA虚拟机读取。
而解释型语言如Shell只有在执行的时候才去考虑如何执行命令
python比较特殊,有两种执行方式,即可以解释执行也可以编译执行(可被python虚拟机读取)。
(未完,持续更新)