甘肃之窗欢迎您!

甘肃之窗
甘肃之窗 > 资讯 >如何在Shell脚本中执行语法检查调试模式

如何在Shell脚本中执行语法检查调试模式

2020-11-07 11:08:15
来源:互联网
阅读:-

-- Aaron Kili文中导航栏-开启 verbose 调试模式11%-在 Shell 脚本制作中开启语法检查调试模式30%编译程序自: http://www.tecmint.com/check-...

怎样在 Shell 脚本制作中实行语法检查调试模式

-- Aaron Kili

文中导航栏

  • -开启 verbose 调试模式11%

  • -在 Shell 脚本制作中开启语法检查调试模式30%

编译程序自: http://www.tecmint.com/check-syntax-in-shell-script/
创作者: Aaron Kili
译员: geekpi

大家打开了 Shell 脚本制作调节系列产品文章内容,起先表述了不一样的调节选择项,下边详细介绍怎样开启 Shell 调试模式。

写完脚本制作后,提议在运作脚本制作以前先查验脚本制作中的英语的语法,而不是查询他们的輸出以确定他们是不是一切正常工作中。

在本系列产品的这一部分,大家将掌握怎么使用语法检查调试模式。记牢大家以前在本系列产品的第一部分中表述了不一样的调节选择项,在这儿,大家将应用他们来实行脚本制作调节。

开启 verbose 调试模式

在进到本具体指导的关键以前,使我们简短地探寻下 verbose 方式。它可以用 -v调节选择项来开启,它会告知 shell 在载入时显示信息每列。

要展现这一怎样工作中,下边是一个实例脚本制作来大批量将 PNG 图片格式转换成 JPG 文件格式。

将下边內容键入(或是拷贝)到一个文档中。

  1. #!/bin/bash

  2. #convert

  3. for image in *.png; do

  4. convert "$image" "${image%.png}.jpg"

  5. echo "image $image converted to ${image%.png}.jpg"

  6. done

  7. exit 0

然后储存文档,并且用下边的指令使脚本制作可实行:

  1. $ chmod x script.sh

我们可以实行脚本制作并显示信息它被 Shell 载入到的每一行:

  1. $ bash -v script.sh

怎样在 Shell 脚本制作中实行语法检查调试模式

显示信息shell脚本制作中的全部行

在 Shell 脚本制作中开启语法检查调试模式

返回大家主题风格的关键,-n激话语法检查方式。它会让 shell 载入全部的指令,可是不容易实行他们,它(shell)总是查验英语的语法。

一旦 shell 脚本制作中发觉有不正确,shell 会在终端设备中輸出不正确,要不然就不容易显示信息任何东西。

激话语法检查的指令以下:

  1. $ bash -n script.sh

由于脚本制作中的英语的语法是恰当的,上边的指令不容易显示信息任何东西。因此,使我们试着删掉完毕 for 循环系统的 done看来下是不是会显示信息不正确:

下边是改动过的带有 bug 的大批量将 png 图片格式转换成 jpg 文件格式的脚本制作。

  1. #!/bin/bash

  2. #script with a bug

  3. #convert

  4. for image in *.png; do

  5. convert "$image" "${image%.png}.jpg"

  6. echo "image $image converted to ${image%.png}.jpg"

  7. exit 0

储存文档,然后运作该脚本制作并实行语法检查:

  1. $ bash -n script.sh

查验 shell 脚本制作英语的语法

从上边的輸出中,大家见到大家的脚本制作中有一个不正确,for 循环系统缺乏了一个完毕的 done关键词。shell 脚本制作从头至尾查验文档,一旦沒有寻找它(done),shell 会复印出一个拼写错误:

  1. script.sh: line 11: syntax error: unexpected end of file

我们可以另外融合 verbose 方式和语法检查方式:

  1. $ bash -vn script.sh

怎样在 Shell 脚本制作中实行语法检查调试模式

在脚本制作中另外开启 verbose 定期检查语法检查

此外,我们可以根据改动脚本制作的第一行来开启脚本制作查验,如下边的事例:

  1. #!/bin/bash -n

  2. #altering the first line of a script to enable syntax checking

  3. #convert

  4. for image in *.png; do

  5. convert "$image" "${image%.png}.jpg"

  6. echo "image $image converted to ${image%.png}.jpg"

  7. exit 0

如上所显示,储存文档并在运作中查验英语的语法:

  1. $ ./script.sh

  2. script.sh: line 12: syntax error: unexpected end of file

除此之外,大家可以用内嵌的 set 指令来在脚本制作中开启调试模式。

下边的事例中,大家只查验脚本制作中的 for 循环系统英语的语法。

  1. #!/bin/bash

  2. #using set shell built-in command to enable debugging

  3. #convert

  4. #enable debugging

  5. set -n

  6. for image in *.png; do

  7. convert "$image" "${image%.png}.jpg"

  8. echo "image $image converted to ${image%.png}.jpg"

  9. #disable debugging

  10. set n

  11. exit 0

再一次储存并实行脚本制作:

  1. $ ./script.sh

总体来说,大家应当确保在实行 Shell 脚本制作以前先查验脚本制作英语的语法以捕获不正确。

请在下面的意见反馈栏中,让我们推送有关这篇具体指导的一切难题或意见反馈。在这个系列产品的第三一部分中,大家会表述并应用 shell 跟踪调试模式。

作者简介:

Aaron Kili 是一个 Linux 及 F.O.S.S 热衷者,将要是 Linux 计算机管理员、web 开发人员,现阶段是 TecMint 的內容原创者,他喜爱用电脑工作中,并热情共享专业知识。

创作者:Aaron Kili[1] 译员:geekpi审校:jasminepeng

文中由 LCTT[2] 原創编译程序,Linux我国殊荣发布

推荐文章

推荐阅读:湛江视窗

免责声明:本文仅代表企业观点,与甘肃之窗无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。