Linux下解决脚本错误
2016-12-28 22:25
232 查看
编写的脚本本身会出现许多类型的错误,基本的错误类型有两种:语法错误和逻辑错误。
①语法错误是编写程序时违反了所用编程语言的规则而造成的。它是在写脚本时最容易犯的错误,也是一类最容易修改的错误。这类错误包括:格式不对,丢失和错放了命令分隔符,单词拼写错误,括号或引号不成对等。当出现语法错误时,bash就不能解释代码,并且显示出错信息,说明它认为出了什么错误,以及其大约存在在哪一行。根据这些提示,可以编辑代码,排除其中的错误。
②逻辑错误非常多且难以预料,通常是由于程序的逻辑关系存在问题,如本该用小于等于运算符却使用了小于运算符,对于此类问题需要进行程序调试。程序员在调试程序上花费的时间往往比写代码多。
有一个很有用的技巧:使用set命令打开-x选项,或者在启动shell时使用-x选项,将shell设置为跟踪模式。
另一个有用技巧是,在程序中经常使用echo或print命令,以显示脚本当前执行到什么地方。如在改变变量值前后打印它,在关键点显示信息以说明正在进行何种类型的操作等等。如有必要,可将输出送到一个记录文件中,以便对程序的行为进行仔细分析。
此外,在两次测试之间对脚本的修改最好不要多于一处,这样有利于差错和改错。
下面是一个实现一个整数相加程序及在跟踪模式下运行的脚本;
$cat ex1
#!/bin/bash
#ex1 -- a program to sum a series of intergers
if [$# -eq 0]
then
echo "Usage:ex1 intergers"
exit 1
fi
sum = 0
until [$# -eq 0]
do
((sum = $sum + $1))
shift
done
echo $sum
①语法错误是编写程序时违反了所用编程语言的规则而造成的。它是在写脚本时最容易犯的错误,也是一类最容易修改的错误。这类错误包括:格式不对,丢失和错放了命令分隔符,单词拼写错误,括号或引号不成对等。当出现语法错误时,bash就不能解释代码,并且显示出错信息,说明它认为出了什么错误,以及其大约存在在哪一行。根据这些提示,可以编辑代码,排除其中的错误。
②逻辑错误非常多且难以预料,通常是由于程序的逻辑关系存在问题,如本该用小于等于运算符却使用了小于运算符,对于此类问题需要进行程序调试。程序员在调试程序上花费的时间往往比写代码多。
有一个很有用的技巧:使用set命令打开-x选项,或者在启动shell时使用-x选项,将shell设置为跟踪模式。
另一个有用技巧是,在程序中经常使用echo或print命令,以显示脚本当前执行到什么地方。如在改变变量值前后打印它,在关键点显示信息以说明正在进行何种类型的操作等等。如有必要,可将输出送到一个记录文件中,以便对程序的行为进行仔细分析。
此外,在两次测试之间对脚本的修改最好不要多于一处,这样有利于差错和改错。
下面是一个实现一个整数相加程序及在跟踪模式下运行的脚本;
$cat ex1
#!/bin/bash
#ex1 -- a program to sum a series of intergers
if [$# -eq 0]
then
echo "Usage:ex1 intergers"
exit 1
fi
sum = 0
until [$# -eq 0]
do
((sum = $sum + $1))
shift
done
echo $sum
相关文章推荐
- Linux上 Can't connect to X11 window server 错误解决方法
- 利用uniread 解决 Linux下的SQL*Plus 命令行历史回调功能
- 解决Frankie Live CD-linux发行版中ADSL的问题。
- Linux+Mono+Apache2下Asp.net连接MySql的一个错误及解决方法
- 编译升级linux由2.4.20-8到2.6.10内核时,遇到的错误,以及解决方法
- WebSphere Application Server 5.0在Linux平台上中文界面乱码问题的解决
- Linux 初步安装出现的问题以及解决流程
- Grub解决单硬盘3OS+n个Linux多系统启动
- 各类unix和linux密码丢失解决方法
- jsp+mysql在linux下的乱码解决方法
- 关于linux做nat出现“table full”的终极解决办法。
- Linux上 Can't connect to X11 window server 错误解决方法
- 基于linux的嵌入IPv4协议栈的内容过滤防火墙系统(7)-尚未解决的问题
- linux 安装遇到的问题和解决
- java直接使用ttf字体,解决window和linux之间的差异
- 图解安装simsun字体后OO乱码的摸黑解决办法【转贴自http://linux.hiweed.com】
- 蛙蛙推荐:使用FreeTextBox出现脚本错误的问题解决
- java在linux下不能处理图形的解决办法
- Linux平台下Java处理图像发生 X11错误解决方法
- 解决xmms不能播放mp3问题 (rh9版)和linux做主机NAT上网