Linux.Shell编程基础知识三

运行 Shell 程序的方法
用户可以用任何编辑程序来编写 Shell 程序。因为 Shell 程序是解释执行的,所以不需要编译成目的程序。按照 Shell 编程的惯例,以 bash 为例,程序的第一行一般为 “# /bin/bash” ,其中 # 表示该行是注释,叹号 告诉 Shell 运行叹号之后的命令并用文档的其余部分作为输入,也就是运行 /bin/bash 并让 /bin/bash 去执行 Shell 程序的内容。
执行 Shell 程序的方法有 3 种。

1sh Shell程序文件名

这种方法的命令格式为:
bash Shell 程序文件名
这实际上是调用一个新的 bash 命令解释程序,而把 Shell 程序文件名作为参数传递给它。新启动的 Shell 将去读指定的文件,可执行文件中列出的命令,当所有的命令都执行完后结束。该方法的优点是可以利用 Shell 调试功能。

2sh

格式为:
bash< Shell 程序名
这种方式就是利用输入重定向,使 Shell 命令解释程序的输入取自指定的程序文件。

3.用chmod命令使Shell程序成为可执行的

一个文件能否运行取决于该文档的内容本身可执行且该文件具有执行权。对于 Shell 程序,当用编辑器生成一个文件时,系统赋予的许可权都是 644(rw-r-r--) ,因此,当用户需要运行这个文件时,只需要直接键入文件名即可。
在这 3 种运行 Shell 程序的方法中,最好按下面的方式选择:当刚创建一个 Shell 程序,对它的正确性还没有把握时,应当使用第一种方式进行调试。当一个 Shell 程序已经调试好时,应使用第三种方式把它固定下来,以后只要键入相应的文件名即可,并可被另一个程序所调用。

4bash程序的调试

在编程过程中难免会出错,有的时候,调试程序比编写程序花费的时间还要多, Shell 程序同样如此。
Shell 程序的调试主要是利用 bash 命令解释程序的选择项。调用 bash 的形式是:
bash - 选择项 Shell 程序文件名
几个常用的选择项是:
-e 如果一个命令失败就立即退出。
-n 读入命令但是不执行它们。
-u 置换时把未设置的变量看做出错。
-v 当读入 Shell 输入行时把它们显示出来。
-x 执行命令时把命令和它们的参数显示出来。
上面的所有选项也可以在 Shell 程序内部用 “set - 选择项 的形式引用,而 “set + 选择项 则将禁止该选择项起作用。如果只想对程序的某一部分使用某些选择项时,则可以将该部分用上面两个语句包围起来。
1 )未置变量退出和立即退出
未置变量退出特性允许用户对所有变量进行检查,如果引用了一个未赋值的变量就终止 Shell 程序的执行。 Shell 通常允许未置变量的使用,在这种情况下,变量的值为空。如果设置了未置变量退出选择项,则一旦使用了未置变量就显示错误信息,并终止程序的运行。未置变量退出选择项为 -u
Shell 运行时,若遇到不存在或不可执行的命令、重定向失败或命令非正常结束等情况时,如果未经重新定向,该出错信息会显示在终端屏幕上,而 Shell 程序仍将继续执行。要想在错误发生时迫使 Shell 程序立即结束,可以使用 -e 选项将 Shell 程序的执行立即终止。
2 Shell 程序的跟踪
调试 Shell 程序的主要方法是利用 Shell 命令解释程序的 -v -x 选项来跟踪程序的执行。 -v 选择项使 Shell 在执行程序的过程中,把它读入的每一个命令行都显示出来,而 -x 选择项使 Shell 在执行程序的过程中把它执行的每一个命令在行首用一个 + 加上命令名显示出来。并把每一个变量和该变量所取的值也显示出来。因此,它们的主要区别在于:在执行命令行之前无 -v ,则显示出命令行的原始内容,而有 -v 时则显示出经过替换后的命令行的内容。
除了使用 Shell -v -x 选择项以外,还可以在 Shell 程序内部采取一些辅助调试的措施。例如,可以在 Shell 程序的一些关键地方使用 echo 命令把必要的信息显示出来,它的作用相当于 C 语言中的 printf 语句,这样就可以知道程序运行到什么地方及程序目前的状态。

本文出自 “网络工程” 博客,谢绝转载!

你可能感兴趣的:(linux,职场,休闲)