1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 玩树梅派学linux-shell编程

玩树梅派学linux-shell编程

时间:2021-07-24 07:36:56

相关推荐

玩树梅派学linux-shell编程

系列文章目录

玩树梅派学linux-shell编程


文章目录

系列文章目录前言一、shell是什么?二、shell脚本有哪些作用三、开始我们的shell之旅1.hello shell2.$x在shell中的特殊含义 总结

前言

决定写这一系列文字已经很久了,在工作和学习中一直在进步。一直都很忙,而且之前开头的几篇文章不是很好但是只是回忆了一下我玩树梅派学linux的过程。虽然,最近经历了很多,在北京真的很难,工作很累还没有休息好就经历了蛋壳资金链危机我不得不另寻安身之所。但是生活总归是美好的,这一切都会过去而我也决定再往前走一步。希望每一个人都能安然的度过这个多灾多难的并取得进步。


一、shell是什么?

我的题目是shell编程,想必它应该是一门编程语言吧。也可以这么理解吧,其实百度百科应该会比我说的明白。如果想看官方的解释可以考虑去看看百度百科,我只说一下我自己的理解。其实作为操作系统的linux它需要提供一个用户操作接口,也就是人机交互程序。说白了就是计算机通过接收用户终端输入的命令来决定干什么然后把结果输出给用户。于是我们称这个程序为命令解释器。那如果用户每次完成一份工作都需要执行一系列的命令,这时如果让用户每次都把这些命令都在键盘上输入一遍可能作为用户的我就会抓狂了。于是,内核开发人员就想了一个办法,把这些命令写入一个文件中,当用户要再次完成这项工作时只需要告诉命令解释器执行那个文件中的命令就行了。命令解释器会从文件中读如这些命令并依次执行。这个文件就是shell脚本。

二、shell脚本有哪些作用

1.批量的执行一系列的命令来完成某项工作。

2. 快速构建新的软件,利用linux现有的众多的命令以及小程序,利用shell脚本将这些功能各异的命令进行整合可以快速的构建新的软件功能。它可以最大限度的扩大软件的杠杆效应。

3. 增加软件的可移植性,因为shell脚本构建的软件是众多命令的组合,所以增加或者删减某个功能很方便。另外,很容易移植到其他体系结构的linux主机上。

4. 降低了构建软件时模块之间的耦合性。

三、开始我们的shell之旅

1.hello shell

每当我们接触一种新的编程语言时总要从hello world!开始,那我们就从hello shell!开始吧!用我们之前学习的vim编辑器新建一个hello.sh文件,并输入一下内容。保存推出我们就完成了一个shell编程的“hello world!”

#!/bin/sh## hello.sh#echo "hello shell!"

然后,我们就可以运行我们的脚本了,类似于:

运行脚本在终端输出了一行字符串。从此,我们就开启了shell编程之路。下面让我解释一下我们短短的程序以让菜鸟有更好的开始。

第一行:#!/bin/sh,这个是告诉操作系统这个脚本要用那种解释器,脚本解释器的路径是什么。因为linux比较自由,有庞大的开发社区。于是就产生了很多种脚本解释器,不管你用那种解释器,shell编程大同小异。

第二行到第四行:是注释,在shell脚本中‘#’后面是注释,与C语言中的‘//’类似。

第三行执行了一个echo命令输出一个字符串。

这个脚本类似于C语言的:

#include <stdio.h>//// hello.c//int main(){printf("hello world!");return 0;}

2.$x在shell中的特殊含义

每种语言都有一些特殊的符号,在shell中我们总能遇到一堆以$符修饰的东西,能否正确的使用$是熟练使用shell脚本很关键的一步。下面我将类比C语言来一起探讨他们各自的含义。(当然前提是读者对C语言有一定的了解);

首先先说说第一种:$0,$1......$n即后面的x是一个数字代表什么意思呢?我们不是在hello shell中已经学会用echo命令输出字符串了吗?那我们就将他们输出到终端,看看他们到底是什么东东。

#!/bin/sh## xnumber.sh#echo $0echo $1echo $2echo $3echo $4

好,我们就输出这四个应该就可以说明问题了,我们运行一下看看结果。

我们发现$0就是我们脚本的文件名,根确切的说是我们输入的命令。但$1-$4输出为空,难道$n代表我们输入的第n个参数?那我们可以试试:

我的猜测似乎一点都没有错,哈哈。


总结

这可能是最近最后一篇关于linux的文章了。。。。。。很遗憾我最近换了一份工作是做单片机方面的协议栈以及boot方面的开发,那时一种全新的挑战。于是我决定去试试,我不得不暂别我热爱的linux以及相关的开发工作。到今天为止我已经入职新公司3个星期了,是一种忙碌的感觉,我每天加班到晚上8点回家后就9点多了。所以我几乎没有时间更新博客,所以这可能是以后很长一段时间的最后一篇博客了。希望在努力一段时间后有更高的提升后可以提供更有价值的博文。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。