shell脚本编程实例 shell脚本速成

11/28 03:16:42 来源网站:268辅助卡盟网

korn shell实例编程指南 pdf下载_运维shell脚本实例_shell脚本编程实例

export PATH="/path/to/scripts/:$PATH"

在此之后,你保存到开发目录中的任何脚本都可以像其他shell命令那样调用了。

运行shell脚本

我们到目前为止已经用到了几个命令,例如echo、which和cat,但是只是单独使用,并没有把它们放到shell脚本中。让我们来写一个可以连续执行这些命令的shell脚本,如代码清单0-4所示。这个脚本先打印出Hello World,然后输出shell脚本neqn的路径,neqn应该位于PATH默认的目录中。接着用该路径将neqn的内容打印到屏幕上。(neqn的内容是什么目前并不重要,这里只是作为一个例子而已。)这是利用shell脚本按顺序执行命令序列的一个很好的例子,在这里我们查看了文件的完整系统路径并快速检查了文件内容。

代码清单0-4我们的第一个shell脚本

echo "Hello World"
echo $(which neqn)
cat $(which neqn)

打开你自己惯用的文本编辑器(Linux上的Vim或gedit、OS X上的TextEdit都是很流行的编辑器),输入代码清单0-4中的代码。然后将shell脚本保存到开发目录中并命名为intro。shell脚本对文件扩展名没有特别要求,用不用都行(如果喜欢的话,可以用.sh作为扩展名,但不是必须的)。第一行代码使用echo命令打印出文本Hello World。第二行代码稍微复杂点,使用which命令找出neqn的位置,然后将其用echo命令在屏幕上打印出来。为了像这样将一个命令作为另外一个命令的参数来运行两个命令,bash使用子shell(subshell)来执行第二个命令并将其输出作为第一个命令的参数。在上面的例子中,子shell执行的是which命令,该命令返回neqn脚本的完整路径。这个路径再被用作echo的参数,结果就是在屏幕上显示出neqn的路径。最后,还是用子shell将neqn的路径传给cat命令,在屏幕上打印出neqn脚本的内容。

保存好文件之后,就可以在终端运行脚本了。代码清单0-5显示了执行结果。

代码清单0-5运行我们的第一个shell脚本

$ sh intro
❶ Hello World
❷ /usr/bin/neqn
❸ #!/bin/sh
 # Provision of this shell script should not be taken to imply that use of
 # GNU eqn with groff -Tascii|-Tlatin1|-Tutf8|-Tcp1047 is supported.
 GROFF_RUNTIME="${GROFF_BIN_PATH=/usr/bin}:"
 PATH="$GROFF_RUNTIME$PATH"
 export PATH
 exec eqn -Tascii ${1+"$@"}
 # eof
 $

运行这个脚本的时候,使用sh命令并将intro脚本作为参数。sh命令会依次执行脚本中的每行代码,就好像这些命令是在终端上敲入的一样。你可以看到先是打印出了Hello World❶,然后是neqn的路径❷,最后输出neqn的文件内容❸,也就是shell脚本neqn的源代码(至少在OS X上是这样的,Linux版本也许略有不同)。

让shell脚本用起来更自然

不使用sh命令也可以执行脚本。如果在shell脚本intro中多加一行,然后修改脚本的权限,就可以像其他bash命令那样直接调用脚本了。在文本编辑器中更新intro脚本:

    暂无相关资讯
shell脚本编程实例 shell脚本速成