shell不会对错误进行精确定位,而是在试图结束一个语句时进行错误统计。所以在shell打印出一个脚本错误后,不要只看那些疑问行,而是要观察整个相关代码段.
1.常见错误:
1.1循环错误
for、while、until、和case语句中的错误是指实际语句段不正确。或许你是忘记了一个保留字而引起的.
比如,fi,done等循环结束关键字。或者在for循环时忘记了在循环列表部分使用$符号。
eg:test.sh: line 6: 语法错误:不可预料的文件末尾
1.2引号漏写错误
此类错误的避免方案是确保在脚本中所有的引号成对出现。
eg:test.sh: line 3: 查找“"”的匹配字符时发现意外的EOF
test.sh: line 7: 语法错误:不可预料的文件末尾
1.3测试错误
即在使用test或[]测试条件时,选项两边的表达式类型不一致。
eg:test.sh: line 3: [: hh:此处需要整数表达式
1.4大小写不一致错误 避免此类错误的关键在于养成变量定义与调用时大小写类型一致的习惯。 2.echo调试工具
一般在可能出现错误的语句段前后使用echo命令,类似于c语言里使用printf函数检测错误.
3.set 命令
set -n 读命令但不执行
set -v 显示读取的所有行
set -x 显示所有的命令及其参数
将"-"更换为"+"即关闭相关选项
可在执行脚本时直接加选项即可;eg:$ bash -x test.sh
也可在脚本内使用;eg:
$ cat test.sh
#!/bin/bash
MYVAR=123
set -x
if [ "$MYVAR" -eq 123 ];then
echo $MYVAR
fi
set +x
exit 0
分享到:
相关推荐
该项目是一款基于freeRTOS操作系统和STM32F103x微控制器的手机远程控制浴室温度系统设计源码,共包含1087个文件,包括580个C语言源文件、269个头文件、45个汇编源文件、36个数据文件、36个目标文件、35个编译规则文件、28个包含文件、27个文本文件、6个源文件、3个归档文件。此系统通过手机远程实现对浴室温度的有效控制,适用于智能浴室环境管理。
labview程序代码参考学习使用,希望对你有所帮助。
labview程序代码参考学习使用,希望对你有所帮助。
labview程序代码参考学习使用,希望对你有所帮助。
labview程序代码参考学习使用,希望对你有所帮助。