shell脚本语言超全超详细 (shell脚本获取shell进程)

各位同学们好呀,上一次文章呢,简单介绍了Shell脚本中的循环流程控制,结合前面几章的内容,Shell脚本除了函数和不同Shell脚本之间的互相引用等内容以外,其它关于Shell脚本应该知道的一些基础知识,我们到本次文章为止,就已经基本介绍完毕了。

通过前面的学习和了解,想必你肯定会使用Shell脚本实现一些简单的功能了,如果你忘记了前面几章的内容,可以点击以下链接去回顾一下。

Shell脚本怎么写?(0)

Shell脚本怎么写?(1)——Shell 变量类型和定义

Shell脚本怎么写?(1-2)——Shell 变量的高级用法

Shell脚本怎么写?之 Shell脚本中的流程控制(1)

Shell脚本怎么写?之 Shell脚本中的流程控制(2)

好了,我们还是废话不多说,开始今天的内容吧。今天是个实践课,我们使用前面学到的内容写一些简单的Shell脚本,达到一定的功能。

下面请看第一个示例:

示例需求:

  1. 要求从0开始数到40, 每秒增加一个数。
  2. 数字增大需要在原地替换,起到倒数计时的那种效果。

这么一个简单的需求怎么完成呢?

请看示例代码:

shell脚本怎么写,shell脚本怎么写日志

示例场景实现代码

实现效果如下:

shell脚本怎么写,shell脚本怎么写日志

数字依次更新变化到7

shell脚本怎么写,shell脚本怎么写日志

数字依次更新变化到20

上面的代码有几个注意点给大家讲解一下:

  1. tput sc, tput rc tput ed 这一套命令,是定位屏幕打印光标位置使用的,由于我们需要原位更新数字,我们每次更新之前都需要在之前打印的数字的原位置做覆盖,不能直接以追加的形式打印。

如果不使用tput 定位,结果如下:

shell脚本怎么写,shell脚本怎么写日志

不使用tput定位,直接append 追加打印了

代码的其它部分,就是简单的我们学过的while 循环和 if else 分支判断了,相信大家认真阅读过之前文章的同学,应该不难理解上面的代码。

好的,看完了上面的示例,我们又来新的需求了:

需求1:

  1. 打印一个8x8 的国际象棋棋盘。

好的,拿到需求之后,我们分析一下,其实8x8的国际棋盘,无外乎是用两种颜色的方格相互间隔构成的,根据奇偶性的不同,进行不同颜色的格子打印即可。

示例程序如下:

shell脚本怎么写,shell脚本怎么写日志

打印蓝白相间的8x8国际象棋棋盘

其中,echo 的高级用法我们前面没有介绍,这里简单介绍下,echo 后面可以跟-ne

       -n     do not output the trailing newline #不输出末尾的换行符

       -e     enable interpretation of backslash escapes #启用反斜杠转义的解释

echo 后面的-n 和 -e 参数解释如上,后面跟的一堆诡异的字符是代表颜色,前景色和背景色的颜色编码。

最终的运行效果如下所示:

shell脚本怎么写,shell脚本怎么写日志

打印8x8的国际象棋棋盘效果

这个示例的话,我们主要是用到了for 循环 和 分支判断,分支判断中使用了简单的算术运算,这些都是我们之前的文章中讲到过的。

大家要记住,编程写代码,就是对这些简单的基础概念的灵活运用。

好了,今天算是一节练习课,通过两个简单的shell脚本示例,把之前文章中介绍过的功能使用一遍,加深大家的理解。

下一节课的话,我们会把Shell脚本中其它未介绍的内容进行一个系统性的介绍,主要包括Shell脚本的函数定义, 多个Shell脚本直接的相互引用和包含等。

如果你觉得我的介绍对你有用的话,请关注点赞收藏哟。。你的关注是我更新的动力。。。