基本信息
文件名称:Shell程序设计培训:从基础到进阶.pptx
文件大小:90.26 KB
总页数:37 页
更新时间:2026-03-08
总字数:约9.12千字
文档摘要

shell程序设计郑音飞

主要内容Shell简介Shell脚本Shell变量Shell命令流控制调试

Shell简介SHELL本身是一个用C语言编写的程序,它是用户使用Linux的桥梁。Shell既是一种命令语言,又是一种程序设计。作为命令语言,它交互式的解释和执行用户输入命令;作为程序设计语言,他定义了各种变量和参数,并提供了许多在高级语言中才具有的控制结构。包括循环与分支。深入了解和熟练掌握shell的特性及其使用方法,是用好Linux的关键。可以说,shell使用的熟练程度反映了用户对Linux使用的熟练程度。

Shell?Script在DOS?中,你可能会从事一些例行的重覆性工作,此时你会将这些重覆性的命令写成批次档,只要执行这个批次档就等於执行这些命令。大家会问在UNIX中是否有批次处理这个东东,答案是有的。在UNIX中不只有如DOS?的批次处理,它的功能比起DOS?更强大,相对地也较复杂,已经和一般的高阶语言不相上下。在UNIX中大家都不叫做批次档,而叫做Shell?Script。

Shell?ScriptShell?Script的地位和其它的可执行档(或命令)是完全相同的,只不过Shell?Script是以文字档的方式储存,而非二进位档。而执行Shell?Script时,必须有一个程式将其内容转成一道道的命令执行,而这个程式其实就是Shell?,这也就是为什麽我们叫做Shell?Script的原因(往後我们称为Script)。不同Shell?的Script基本上会有一些差异,所以我们不能将写给A?shell?的Script用B?shell?执行。

将文字档设为可执行的Shell?Script?如果我们已经写好Script,如何将其设成可执行档呢?因为Script其实是一个可执行档,所以必须将其存取权设定成可执行。我们可以使用下列命令更改存取权:?chmod?u+x?filename?只有自己可以执行,其它人不能执行?chmod?ug+x?filename?只有自己以及同一群可以执行,其它人不能执行?chmod?+x?filename?所有人都可以执行?

指定一个Shell?来解释所写的Script如果Script的第一个非空白字元不是“#”,则它会使用Bourne?Shell。如果Script的第一个非空白字元是“#”时,但不以“#!”开头时,则它会使用C?Shell。如果Script以“#!”开头,则“#!”後面所写的就是所使用的Shell,而且要将整个路径名称指出来。这里建议使用第三种方式指定Shell?,以确保所执行的就是所要的。?

Script的基本结构及观念?Script是以行为单位,我们所写的Script会被分解成一行一行来执行。而每一行可以是命令、注解、或是流程控制指令等。如果某一行尚未完成,可以在行末加上“\”?,这个时候下一行的内容就会接到这一行的後面,成为同一行。当Script中出现“#”?时,再它後面的同一行文字即为注解,Shell?不会对其翻译。在Script中要执行一个命令的方法和在命令列中一样,你可以前景或背景执行,执行命令时也会需要设定一些环境变数。?Script的流程控制和一般高阶语言的流程控制没有什么两样,也和高阶语言一样有副程式。这些使得Script的功能更加强大。?为了达到与高阶语言相同的效果,我们也可以在Script中设定变量,如此使Script?成为一个名付其实的高阶语言。?

变量在其他编程语言中您必须使用变量。在shell编程中,所有的变量都由字符串组成,并且您不需要对变量进行声明。要赋值给一个变量,您可以这样写:

变量名=值取出变量值可以加一个美元符号($)在变量前面。

例子#!/bin/sh

#对变量赋值:

a=helloworld

#现在打印变量a的内容:

echoAis:

echo$a在您的编辑器中输入以上内容,然后将其保存为一个文件first。之后执行chmod+xfirst使其可执行,最后输入./first执行该脚本。

shell变量有时候变量名很容易与其他文字混淆,比如:num=2

echothisisthe$numnd“这并不会打印出“thisisthe2nd”,而仅仅打印“thisisthe”,因为shell会去搜索变量numnd的值,但是这个变量时没有值的。可以使用花括号来告诉shell我们要打印的是num变量:

num=2

echothisisthe${num}nd

这将打印:thisisthe2nd

Shell命令(1)echo“sometext”:将文字内容打印在屏幕上ls:文件列表wc–lfilewc-wfilewc-cf