shell 编程光速入门与实战

场景

光速入门shell与编写软件自动化部署脚本

分析
一、什么是Shell 编程为什么要学习shell编程

  1. 什么是shell编程

利用shell为我们提供的功能,编写应用程序,这个程序里面可能包含shell的内置命令与外部命令。辣么问题来了:什么是 shell 呢?有哪些shell呢?为什么要学习bash shell ?  bash Shell为我们提供哪些功能呢?

  • 好,先来聊聊什么是shell。

 shell 直接翻译成中文就是‘外壳’,由‘外壳’大家直接联想到什么呢?对,鸡蛋壳!鸡蛋壳里面有什么?蛋白。那蛋白里面是什么呢?蛋黄。从用户使用的角度来说,计算机也有类似的组成结构-“蛋黄”:硬件设备,eg:CPU,内存,网卡,声卡等。“蛋白”:操作系统,eg、windows、linux、Machtosh等,“外壳”:shell广义的shell就是能够接受来自用户的指令,能够操作应用程序的接口,都能称作shell。 咱们通常所指的狭义的shell是指命令行方面的软件,像bash shell、csh shell、zsh shell等等。Shell在计算机中的位置如下图所示:


 

Shell在计算机中所处在的位置

  •  为什么要学习bash shell呢

不同的shell功能差不多,但是语法细节有点差异,而各种linux发行版本默认的shell是 bash sh ell,所以我们接下来的shell 编程是基于 bash shell这样一个大环境来进行的。好,最后一个问题:Bash 这个应用程序为我们提供了哪些功能呢?大致分为五大类:命令行操作界面、变量功能(环境变量、本地变量、变量参数)、命令别名与历史命令、数据流从定向、管道命令。详见下图示:


                                                                                                                       bash功能图解

命令行界面:就是在控制台输入用户名与密码登录后所出现的界面辣。

变量功能:语法 varName=value [中间不能有空格,有空格的话,bash会把它当做名利来执行]举例:#name=snail #echo $name

命令别名与历史命令:#alias 

数据流从定向:把命令的执行结果(正常结果,异常结果)重新导入到其他的(非默认)文件中去。

管道命令:个人认为叫做过滤命令更好,eg、 grep 、cut、less、more.

以上命令大家先了解一下就行,有个印象,至于具体怎么 用,会在接下的具体的实际案例与linux系统源代码分析中加以详细说明。

待更新

 

二、 Shell编程初体验之第一个script的编写: HelloWorld.sh

待更新

三、shell编程入门之条件控制、循环结构与脚本的调试

这里先交代一下相关语法,然后以实际应用案例与linux系统源代码分析中加以详细说明。


3.1 条件表达式之test命令与判断符号“[ ]”(注:就是中括号辣)

语法:test  [option]...  Filename

功能:检查文件类型、权限、文件新旧的比较;两个整数之间的比较;字符串内容判断;多重条件判断。

应用举例:

test -f  filename :该文件名是否存在且为文件(file)。

test -d  filename :该文件名是否存在且为目录(directory)。

 

test -r  filename :该文件名是否存在且具有可读权限。(同理:-w-x

 

test  “1” -ne  “2” :1是否比2大,大则返回真,否则返回假。(同理:-eq-gt-ge 等)

 

Test -z string : 判断字符是否为空(“”),空则返回 true

Test str1 = str1 ; Test str1!= str2

 

注:[ ] 功能同 test 命令,test命令有的功能 [ ] 都有,使用方法也完全一致(特别注意: [ ] 中的所有元组都得有空格,这是语法规定辣)。应用举例:[  -f  filename  ]  - 该文件名是否存在且为文件(file)。

 

3.2 逻辑控制结构

 

3.2.1  条件判断(if-else case-esac)

语法 

If [ 条件判断式] ; then

执行内容

If

 

3.2.2  case...esac 

语法 

case $变量名称 in

“第一个变量”)

程序段

;;

“第二个变量”)

程序段

;;

*

程序段

exit 1

;;

   esac

 

3.3.3 循环(while until for )

语法

While  [ ]

do

程序段

done

 

util [ ]  do 程序段 done

 

for var in con1 con2 con3 

 

3.3 实际案例

待更新

四、Shell编程进阶之linux系统常用系统文件源码解读

待更新.

五、Shell编程实战之项目实战

待更新

 参考文献

鸟哥的私房菜之基础学习篇  第三版

马哥 linux 运维


 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值