你是这样理解shell编程的嘛?

学习使用linux系统,绕不过去的就是shell脚本编程,在编写shell脚本之前。当然还要熟悉linux上的一些常用的命令(ls、mv、alias、cp、crontab、find、grep、mkdir等等很多),只有熟悉了linux上的命令才能进一步学习linux上的shell编程。

虽然linux现在的图形界面做的也已经不错了,但linux上最重要最便捷的操作还是通过命令行(也就是只有黑底白字的窗口)实现的,图形界面只是实现了其中的一部分功能,而且图形界面(如:KDE、GNOME等)只是linux上的套件,并不是linux上必备的软件,完全可以在不需要的情况下删除掉。所以要想学好linux,还是要熟悉命令和shell脚本,这是基础。

那什么是shell脚本呢?一说脚本好像不太懂是什么东东,脚本只是对某一种文件的称呼而已,实际上还是用户可读的文本文件。而该文件中写的不是令人捧腹的笑话,也不是文章,更不是你对某个学科所做的笔记,而是一堆命令,对,就是一堆命令。如果每个命令都是一个东西(比如一本书),那shell脚本就是盛放书籍的箱子,而书籍在其中是按照一定的顺序排放的。

那shell脚本到底是什么呢?慢慢听我说,你可能使用过ls命令,很简单,显示当前目录的文件嘛。那多次执行各种命令(比如要生成一个含有hello的文件,并且将该文件命名为test,然后将文件重命名为test.txt,最后浏览当前目录然后将输出信息写入到该文件但不能覆盖掉hello。这样是不是就比较难一些了)。这样的一个任务分成了好多步骤执行,就要在终端下输入很多次的命令,但如果重新来一遍的话,还要重新输入。累不累啊?很累。大牛们感觉这样实在不是办法,就想了个主意,将这些命令依次序写到一个文件中,然后开发了一个叫做shell的程序去从上到下、从左到右读取文件中的内容来替代手动输入的内容。就这样,我们只需要让shell读一下文件即可了,是不是很省事了。而这样的文件就被称为shell脚本。

而实际上处理的任务比上面举的例子要复杂的多啊,简单的罗列命令的方式不好用啊,而且很多时候重复的内容能不能只写一次在多处调用呢?当然。大牛们为了偷点懒省电时间又为shell增加了一些语法,因此就出现了if-else 和 for循环、while循环等控制语句以及函数function,增加了shell的功能和复杂度。而这些控制语句和函数是借鉴的编程语言(比如C),因此编写shell脚本的过程又叫做shell编程。
因此在linux下,当使用者面对重复繁重的命令操作时,就可以将linux中的命令或者shell内置的命令,通过控制语句的编排,写入到一个文本文件中就成了shell脚本。然后给予该文本一个可执行权限,把该文件交给shell执行。那这样就完成了shell编程,是不是既便捷又轻松还显得高大上呢?

时间: 2024-10-20 19:29:26

你是这样理解shell编程的嘛?的相关文章

shift妙用之解决shell编程中的入参问题

shell编程经常会遇到参数个数不定的这种情况,这种情况怎么处理呢?shift就要闪亮登场了   我说过了,shell是我的常规武器,目前虽然还不纯熟,但是我爱shell这门语言,在Linux下面混,总要写脚本.程序员是有基因,对编程语言是有 偏好的,你让我写C代码,我会觉得很爽,会有困难,会有痛苦的摸索和学习,但是,我愿意:学习shell/python,我也很乐意,甚至Lisp这种冷 门的语言我也充满了好奇,虽然现在Go和Erlang我一点也不懂,但是我按耐不住对这两种语言的兴趣,只要我抽出手

跟老男孩学Linux运维:Shell编程实战.

Linux/Unix技术丛书 跟老男孩学Linux运维: Shell编程实战 老男孩 著 图书在版编目(CIP)数据 跟老男孩学Linux运维:Shell编程实战 / 老男孩著. -北京:机械工业出版社,2017.1 (Linux/Unix技术丛书) ISBN 978-7-111-55607-7 I. 跟- II. 老- III. Linux操作系统 IV. TP316.85 中国版本图书馆CIP数据核字(2016)第313248号 跟老男孩学Linux运维:Shell编程实战 出版发行:机械工

shell 编程 语句-shell编程中的语句问题,求解答

问题描述 shell编程中的语句问题,求解答 #!/bin/bash use=cat cat_greet() { echo "hello cat" } if [ $use=cat ] then cat_greet fi no_exit=1 [[ $no_exit -eq 1 ]]&& exit(){true;} exit 这个程序输出结果为 hello cat 我想问的是 [[ $no_exit -eq 1 ]]&& exit() {true;} 这一句

跟老男孩学Linux运维:Shell编程实战1.3 如何才能学好Shell编程之“老鸟”经验谈

1.3 如何才能学好Shell编程之"老鸟"经验谈 学好Shell编程的核心:多练→多思考→再练→再思考,坚持如此循环即可! 从老男孩IT教育毕业的一名学生曾在工作多年后返校分享了一篇"如何学好Shell编程"的讲稿,经过老男孩的整理后和读者分享如下. (1)掌握Shell脚本基本语法的方法 最简单有效的方法就是将语法敲n+1遍.为什么不是n遍呢?因为这里的n指的是你刚开始为掌握语法而练习的那些天(21天法则),而1则是指在确定掌握语法后每天都要写一写.想一想,至少

【SHELL 编程基础第一部分】第一个SHELL脚本HELLOSHELL及一些简单的SHELL基础书写与概念;

本站文章均为 李华明Himi 原创,转载务必在明显处注明:  转载自[黑米GameDev街区] 原文链接: http://www.himigame.com/shell/759.html 本章节分享Shell 学习篇,那么对于Shell 简单介绍下,对于Shell来说,大家可以理解Shell 是一个命令解释器,类似于DOS下的command.com.它接收用户命令(如ls等),然后调用相应的应用程序.另外一点它可以使用用户的缺省凭证和环境执行 shell.传统意义上的shell指的是命令行式的sh

跟老男孩学Linux运维:Shell编程实战2.6 Shell脚本的建立和执行

2.6 Shell脚本的建立和执行 2.6.1 Shell脚本的建立 在Linux系统中,Shell脚本(bash Shell程序)通常是在编辑器vi/vim中编写的,由UNIX/Linux命令.bash Shell命令.程序结构控制语句和注释等内容组成.这里推荐用Linux自带的功能更强大的vim编辑器来编写,可以事先做一个别名alias vi='vim',并使其永久生效,这样以后习惯输入vi的读者也就可以直接调用vim编辑器了,设置方法如下: [root@oldboy ~]# echo "a

Shell编程基础

本文作者:Leal 授权许可: 创作共享协议 GNU自由文档许可证 编辑人员:FireHare, Dbzhang800 我们可以使用任意一种文字编辑器,比如gedit.kedit.emacs.vi等来编写shell脚本,它必须以如下行开始(必须放在文件的第一行): #!/bin/sh ... 注意:最好使用"!/bin/bash"而不是"!/bin/sh",如果使用tc shell改为tcsh,其他类似. 符号#!用来告诉系统执行该脚本的程序,本例使用/bin/sh

shell编程--基本格式,基本语法,运算符,expr,(()),$[]

02/shell编程 Shell是用户与内核进行交互操作的一种接口,目前最流行的Shell称为bash Shell Shell也是一门编程语言<解释型的编程语言>,即shell脚本<就是在用linux的shell命令编程> 一个系统可以存在多个shell,可以通过cat /etc/shells命令查看系统中安装的shell,不同的shell可能支持的命令语法是不相同的 2.1 基本格式 代码写在普通文本文件中,通常以 .sh为后缀名 vi hello.sh #!/bin/bash 

(C#)Windows Shell 编程系列3 - 上下文菜单(iContextMenu)(一)右键菜单

原文 (C#)Windows Shell 编程系列3 - 上下文菜单(iContextMenu)(一)右键菜单 接上一节:(C#)Windows Shell 编程系列2 - 解释,从"桌面"开始展开这里解释上一节中获取名称的方法 GetDisplayNameOf 定义: void GetDisplayNameOf(             IntPtr pidl,             SHGNO uFlags,             IntPtr lpName); 该方法是用来转