学生们相信的第七件事——基于Linux的Shell脚本

沿着前面的轨迹,接下来就是Linux中shell脚本的学习了。这对于盛鑫的工程师后期处理大量数据是非常非常重要的,但同样的,作为一个有点守旧的人,我也苦思了很久“脚本”的含义。我觉得有点抽象,尤其是和天生字母的同事讨论项目分析的时候。他们经常说这个词。在他们心中,这是一个不言而喻的名词,但在外人(比如我)看来,这简直就是一个无情的“知识诅咒”。往往我假装懂了,然后继续讨论下面的问题,形成一个模糊的印象。

百度的解释是,脚本是批处理文件的扩展,是以纯文本保存的程序。一般来说,计算机脚本程序是控制计算机进行算术运算的一组组合,其中可以实现某些逻辑分支。不知道你能不能看懂,我一开始真的是一知半解。

鸟哥私房菜的解释是:shell脚本是利用shell的功能编写的“程序”。这个程序使用一个纯文本文件,在里面写一些shell语法和命令(包括外部命令),具有正则表达式、管道命令和数据流重定向的功能,从而达到我们想要处理的目的。我不明白,好像看不懂...

Jude简单粗暴的解释是,一个脚本是Linux中的很多命令按照一定的规则组合起来实现一个特定的功能。Linux中有很多简单的命令,往往只是简单的对话。比如一张cd就是进入一个目录,简单直接。但是如果我想输入一个目录A,然后在目录A中创建一个目录B,然后在目录B中创建一个文本C呢?当然,你可以一步一步来。如果想一步完成,可以用脚本把三个命令写在一起,一起执行。似乎有点罗嗦...

或者从英语的角度来说,script的英文对等词是script,这个词的中文解释也有Script的意思。这个剧本很容易理解。剧本是导演(文字工程师)根据一定的手法(规则)根据一定的主题(要达到的目标)写出来的故事。不管是哪个演员,都要按照剧本来演。所以学好英语对学生写信也有帮助~

根据脚本的复杂程度可以分为:

不用说,这实际上是几个简单命令的序列。脚本执行后,会按照命令的先后顺序逐一执行。

与简单的基本脚本相比,结构化命令脚本可以施加逻辑流程控制,从而改变程序(命令)的执行顺序。基本脚本中的命令是自顶向下执行的,但结构化命令脚本可以根据逻辑判断重复或跳过一些命令。

常用的结构化命令(语句)有:

背后的嵌套循环是什么?但是我觉得以上7个命令都已经学会了,应该可以应付绝大部分在原信分析中的应用。

记得高中的时候,物理老师(也是班主任)在给我们讲解习题的时候有一个有趣的套路:不管是什么问题,我都会在下面写一个答案,以示解决问题的决心,这也是一种积极的心理暗示。脚本也是例行公事,但总体来说还是比较简单的。

对于简单的脚本(超级简单的),只需将几个命令连接在一起,用“;”在中间。分开。

对于更长更复杂的脚本,通常需要创建一个文本并在其中进行编辑。这就涉及到文本编辑器了,常用的简单的一般是nano和vim,真的很简单,规则很好理解,教程也是随手可得,不多说了。

例如,用vim创建一个脚本后,具体的语法(例程):

好了,剧本完成了。我怎样才能让剧本发挥作用?这就涉及到前面提到的环境变量,相对路径,绝对路径。有三种方法:

就这些,应该有点感觉了,剩下的就是疯狂练习了~