`

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** 是一种用于与计算机操作系统交互的脚本语言。它不仅提供了基础的命令行接口功能,还支持更复杂的编程逻辑,使得用户能够自动化任务处理流程。...

    Notepad2 绿色中文版,支持 CMakeLists.txt、ShellScript(*.sh)、PowerShell(*.ps) 等等语法着色

    Notepad2对PowerShell (*.ps)文件的语法高亮,有助于PowerShell开发者在处理复杂的脚本和命令时保持清晰的视线,避免语法错误。 此外,绿色版的Notepad2意味着它无需安装,解压即用,不写入注册表,不会污染用户的...

    Shell编程大全 高清PDF版

    2. **Shell语法** - 条件表达式与测试命令:学习if、elif、else语句,以及test和[[命令]用于条件判断。 - 循环结构:掌握for、while、until循环的用法,以及如何处理数组。 - 函数定义与调用:了解如何在Shell...

    shell-执行故意错误

    1. **语法错误**:例如,忘记在命令结束时添加分号或括号不匹配。这会导致脚本在解析阶段就无法运行,从而触发错误告警。 2. **命令执行错误**:可以使用无效的命令或者在命令参数中故意输入错误的数据,比如`rm -...

    Shell脚本学习教程PDF版

    在“Shell脚本学习教程PDF版”中,你将深入理解Shell脚本的基本概念、语法结构以及高级特性。 首先,Shell脚本的基础包括变量、条件语句、循环结构和函数。变量是存储数据的地方,可以是文本、数字或者其他类型。在...

    shell常用语法实例

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

    HP-UX环境下Shell程序调试

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

    ShellCheck,shell脚本静态分析工具___下载.zip

    1. **语法错误检查**:它会检测脚本中的语法错误,如未关闭的引用、无效的命令或选项等。 2. **未定义的变量检查**:ShellCheck能发现未声明或未初始化的变量,避免因使用空变量导致的意外行为。 3. **命令替换检查*...

    Shell编程常见代码.md

    - 错误输出重定向:`错误命令 2> 文件名` (覆盖) 或 `错误命令 2>> 文件名` (追加) - 综合重定向:`命令 &> 文件名` (覆盖) 或 `命令 &>> 文件名` (追加) - **输入重定向**:从文件而非键盘接收输入数据。 - ...

    shell编程语法和实例

    在这个主题中,我们将深入探讨shell编程的基本语法和实用实例。 1. **基本结构** Shell脚本通常以`#!/bin/bash`作为首行,指定使用bash shell解释器来执行脚本。这被称为“shebang”或“hash-bang”。 2. **变量*...

    shell脚本基本语法详解.doc

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

    shell脚本语法

    ### Shell脚本语法详解 #### 一、Shell脚本基础 **Shell脚本**是一种用于自动化执行Linux或Unix系统中的任务的脚本语言。通过编写Shell脚本,用户可以组合多个命令来完成复杂的操作,提高工作效率。Shell脚本的...

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

    这项研究的核心是解决文本中的语法错误,并通过依赖关系传递来修复这些错误。依赖关系解析是NLP中的一个重要环节,它分析句子中词汇之间的结构关系,帮助理解句子的意义。 依赖关系传递是指在识别出语法错误后,...

    shell编程.pdf

    ### Shell编程知识点详解 #### 一、Shell编程概述 **Shell**是一种计算机操作系统中的命令解释器,也是用户与操作系统交互的主要方式之一。Shell脚本则是通过编写一系列命令和控制结构来自动化复杂的任务处理过程...

    shell编写 shell编写

    为了调试和优化脚本,可以使用`echo`打印变量值,`set -x`开启命令行跟踪,`set -e`使脚本在遇到错误时立即停止,以及使用`bash -n`检查脚本语法错误。 在实际应用中,Shell脚本广泛应用于系统管理、数据处理、自动...

    shell shell练习 shell入门

    本篇文章将深入探讨Shell的基础知识,包括其概念、重要性、基本语法以及如何进行Shell编程练习。 一、Shell简介 Shell是一个用户与操作系统之间的接口,它接受用户输入的命令并解析成操作系统可以理解的语言,然后...

    linux-为Zsh提供类似于Fishshell的语法高亮

    Fish shell则以其用户友好的特性,如自动补全、命令提示和语法高亮,受到很多用户的喜爱。然而,Zsh本身并不默认包含这些特性。本主题将详细介绍如何为Zsh配置类似于Fish shell的语法高亮,以提升终端交互体验。 ...

    linux_shell实例精解

    2. **Shell语法**:讲解变量、条件表达式、流程控制(如if、for、while循环)、函数等基本语法元素,帮助读者构建脚本的基础框架。 3. **文件与目录操作**:如何创建、删除、移动、复制文件和目录,以及文件查找、...

    Korn Shell.doc (kshel语法、变量和内置命令简介)

    ### Korn Shell (ksh) 语法、变量和内置命令详解 #### 一、Korn Shell 简介 Korn Shell(简称 ksh)是一种功能强大的 Unix Shell,由 David Korn 在 AT&T 贝尔实验室开发。Korn Shell 结合了 Bourne Shell 和 C ...

Global site tag (gtag.js) - Google Analytics