免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 853 | 回复: 0
打印 上一主题 下一主题

《基于Linux的C编程与内核导读》连载(37续) [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-07-07 19:20 |只看该作者 |倒序浏览

(5)while表达式
while语句是另一种循环语句。当一个给定的条件为真时,则一直循环执行下面的语句直到条件为假。在bash环境下,使用while语句的表达式为:
while expression
do
statements
done
下面是在bash外壳中while语句的一个例子。程序列出所带的所有参数,以及他们的位置号,其中shift命令用来将命令行参数左移一个位置。
#! /bin/bash
#program test_while
#
count=1
while [-n "$*"]
do
echo "This is parameter number $count $1"
shift
count='expr $count+1'
done

(6)unitl表达式
until语句的作用和while语句基本一样,只是当给定的条件为假时,执行until语句。until语句在bash中的写法为:
until expression
do
commands
done
让我们用until语句重写上面的例子:
#! /bin/bash
#program test_until
#
count=1
until [-z "$*"]
do
echo "This is parameter number $count $1"
shift
count='expr $count+1'
done
在应用中,until语句不是很常用,因为until语句可以用while语句重写。

(7)子函数
shell程序语言可以定义自己的函数,就像在C或其他语言中一样。使用函数的最大好处就是程序更为清晰可读。下面是如何在bash中创建一个函数:
fname()
{
shell commands
}
使用函数时,只须输入以下的命令:
Fname parm1 parm2 parm3…
你可以传递任何数目的参数给一个子函数,子函数将会把这些参数视为位置参数。
#bash –选项 程序名

选项含义:
-e  如果一个命令失败就立即退出。
-n  读入命令,但不执行。
-u  置换时把未设置的变量看成出错。
-v  当读入shell输入行时把它们显示出来。
-x  执行命令时把命令和它们的参数显示出来。
调试shell程序的主要方法是利用shell命令解释程序的“-v”或“-x”选项来跟踪程序的执行。“-v”选项使程序在执行过程中,将它读入的每一条命令行都显示出来。而“-x”选项使shell在执行过程中,把它执行的每一条命令在行首用一个“+”加上命令名显示出来,并且把每一个变量和该变量的值也显示出来。
除了使用shell的“-v”和“-x”选项外,还可以在shell程序内部采取一些辅助调试的措施。例如,可以在shell程序的一些关键
4、shell程序的调试
shell是一种解释执行的语言,可以利用bash命令解释程序的选项来调试程序,其调试格式为:
#bash –选项 程序名
选项含义:
-e  如果一个命令失败就立即退出。
-n  读入命令,但不执行。
-u  置换时把未设置的变量看成出错。
-v  当读入shell输入行时把它们显示出来。
-x  执行命令时把命令和它们的参数显示出来。

调试shell程序的主要方法是利用shell命令解释程序的“-v”或“-x”选项来跟踪程序的执行。“-v”选项使程序在执行过程中,将它读入的每一条命令行都显示出来。而“-x”选项使shell在执行过程中,把它执行的每一条命令在行首用一个“+”加上命令名显示出来,并且把每一个变量和该变量的值也显示出来。
    除了使用shell的“-v”和“-x”选项外,还可以在shell程序内部采取一些辅助调试的措施。例如,可以在shell程序的一些关键地方使用echo命令,把必要的信息显示出来,它的作用相当于C语言的printf语句。这样就可以知道程序目前的状态和运行到什么地方出错了。

本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/26619/showart_336036.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP