`

shell语法错误

阅读更多
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
分享到:
评论

相关推荐

    shell常用语法实例

    **Shell 常用语法规则** ...以上只是Shell语法的一部分,实际应用中还有更多的命令和技巧,如重定向、进程控制、错误处理、函数库调用等,学习和熟练掌握Shell能极大地提高Linux系统的管理和自动化能力。

    HP-UX环境下Shell程序调试

    语法错误调试是指对 Shell 程序的语法进行检查,以确保 Shell 程序的语法正确。在 HP-UX 环境下,可以使用 Shell 的 -n 参数来检查语法错误。例如,可以使用以下命令来检查 getsh.sh 的语法错误: #/usr/bin/sh –n...

    shell脚本基本语法详解.doc

    Shell脚本基本语法详解 Shell脚本基本语法详解是指在编写Shell脚本时所需要了解和掌握的基本语法。下面是对Shell脚本基本语法的详细解释: 一、 Shell 变量 在Shell脚本中,变量的赋值和使用是非常重要的。Shell...

    不合语法文本的错误修复依赖关系传递(ACL2017)_Python_Shell_下载.zip

    不合语法文本的错误修复依赖关系传递(ACL2017)_Python_Shell_下载.zip

    aixshell 编程

    * 错误处理:AIX shell 编程需要注意错误处理,例如语法错误、逻辑错误等。 * 安全性:AIX shell 编程需要注意安全性,例如权限管理、数据加密等。 结论 AIX shell 编程是一种强大的编程语言,可以帮助用户提高 ...

    Bash Shell入门

    Shell基本语法: 1. Shell脚本的第一行中的符号“#!”用来指定解释执行该脚本文件的Shell程序。如果脚 本文件中缺少该行,在执行过程中,会报出错误信息。 2. Shell脚本完成后保存为*.sh,而后增加其可执行权限:...

    shell编程.doc

    在实际编写过程中,可能会遇到语法错误、逻辑错误或者用户交互方面的挑战,这些都是学习Shell编程过程中的宝贵经验。 在分析与讨论部分,学生可以讨论如何优化代码,提高用户体验,或者探讨不同Shell命令的使用场景...

    shell 调试方法

    * shellcheck:一个基于静态分析的调试工具,可以检测脚本中的语法错误和逻辑错误。 shell脚本调试技术是一种非常重要的技术,掌握这些技术可以帮助我们更好地调试脚本,提高开发效率和代码质量。

    shell算数运算

    算术运算UNIX shell范例精解。整数运算(declare和let命令) declare命令 可以用declare –...如果给整型变量赋一个浮点数值,则bash将报告语法错误。数字可以用不同基数的数字表示,如 二进制数,八进制数或十六进制数。

    Linux系统的shell简介

    不同的 shell,如 sh、csh、ksh 和 Bash,虽然在语法和特性上有所差异,但基本概念和使用方式是相通的,用户可以根据个人喜好选择合适的 shell。在现代 Linux 系统中,Bash 已经成为最常用的标准 shell,因此学习 ...

    shell中长命令的换行处理方法示例

    在这个例子中,每个参数前的反引号包裹的注释不会影响命令的执行,使得我们可以在不破坏脚本语法的情况下提供清晰的注解。 另外,还有其他方法可以处理长命令的换行。例如,可以使用函数或别名来封装长命令,使其在...

    shel中特殊符号

    shell 中特殊符号的详细介绍 shell 中的特殊符号是 shell 编程的基础,熟悉这些符号的功能和使用方法是非常重要的。本文档将详细介绍 shell 中的特殊符号,包括它们的功能、用途和使用方法。 1.井号 (#):注释...

    Linux的shell编程

    在shell编程中,用户可以使用以下基本语法: 1. 输入/输出重定向:可以改变程序的标准输入、输出和错误流,例如使用`进行输入重定向,`>`和`>>`进行输出重定向。 2. 管道(Pipe):通过`|`连接两个命令,将前一个...

    Shell 十三问

    Shell提供了错误处理机制,如使用双引号防止变量扩展,使用set命令检查语法错误,以及使用echo、printf进行调试。 12) **Shell的命令历史** Shell记录用户的命令历史,通过上下箭头键可以快速访问以前输入过的命令...

    shell工具awk语法略解

    AWK 没有内置的错误处理机制,但可以通过条件语句检查潜在问题,如空字段、无效的数学运算或找不到的文件。在编写 AWK 脚本时,良好的编程实践是必要的,包括适当的注释和测试。 总结,AWK 是一个强大且灵活的文本...

    Advanced Bash Shell Guide(中文版)

    本书详细介绍了Bash的各种特性和使用技巧,包括其语法、命令、调试方法,以及如何通过实践来提升技能。作者Mendel Cooper旨在让读者在没有编程背景的情况下也能理解和运用Bash Shell脚本。书中的练习和实例脚本不仅...

    Shell编程下的AWK语法小结

    在Shell编程中,AWK是一种强大的文本分析工具,由Alfred Aho、Peter Weinberger和Brian Kernighan三位计算机科学家的名字首字母命名。AWK提供了一种简洁的语法,使得用户可以方便地处理文本数据,包括查找模式、排序...

    嵌入式操作系统:第5章 Linux Shell编程.ppt

    如果找不到命令,Shell会返回错误信息。 Shell同时也是一种编程语言,具备高级程序设计语言的特性,如变量、条件语句(if、case)、循环(while、for)等。通过Shell脚本,用户可以编写出复杂且功能强大的自动化...

    UNIX_BASIC 第6章 UNIX Shell.pptx

    13. Shell 脚本的调试:Shell 脚本的调试是 Shell 中的错误处理机制,用于检测和处理 Shell 脚本中的错误。 14. 综合示例:Shell 脚本可以用于解决实际问题,例如文件处理、数据处理、系统管理等。 UNIX Shell 是 ...

    AIX-SHELL基本编程

    在定义环境变量时,需要注意三个重要问题:第一,在等号 (=) 的两边不能有空格,否则将导致错误。第二个要注意的事是,当定义的环境变量值多于一个字时,引号是必须的。第三,虽然通常可以用双引号来替代单引号,但...

Global site tag (gtag.js) - Google Analytics