使用bash选项改变的行为脚本

这里有一些比较流行的bash脚本选项来控制如何在Linux和工作如何可用选项列表,包括看到哪些是打开的。

  • 在Facebook上分享
  • 在Twitter上分享
  • 分享在LinkedIn
  • 在Reddit分享
  • 通过电子邮件分享
  • 印刷资源
连接齿轮/过程/自动化/机械/机制的效率

Bash提供了大量的选项,可用于控制Bash脚本的行为。这篇文章研究了一些更有用的,解释了如何显示哪些选项是使用的,哪些不是。

退出时发生错误

如果你想要一个bash脚本退出就遇到一个error-any错误总您的脚本,您可以添加的设置- o errexit选择。如果脚本包含一个语法错误,试图读取一个文件,不存在,试图附加到文件当你没有权限这样做,或误用命令,脚本会突然结束。这是一个简单的例子:

# !/bin/bash设置- o errexit尾巴NoSuchFile echo - n”输入文本附加>“txt echo $ txt > > NoSuchFile阅读

尝试运行这个脚本,您将看到这个:

美元app2file尾巴:NoSuchFile:没有这样的文件或目录

因为NoSuchFile不存在,脚本将退出,提示文本附加到它永远不会运行。没有errexit设置,该脚本将在“没有这样的文件”后继续运行错误和收集任何文本输入提示符后,创建一个文件,并将文本添加到它。

跟踪一个bash脚本

使用xtrace选择,每一个命令运行一个脚本,该脚本将显示出来。这个选项特别有用,当你调试一个复杂的脚本。你可以简单地删除xtrace选择或评论,当你不再需要跟踪的命令。

# !/bin/bash设置- o xtrace天太阳星期一星期二结婚星期四星期五坐echo $一天睡眠2完成

这个脚本的输出将开始像如下所示。行开头+不会出现如果迹象xtrace选项没有被使用。

loop-days-of-week +美元一天太阳星期一星期二结婚星期四星期五坐+回声太阳太阳+睡眠2 +一天太阳星期一星期二结婚星期四星期五坐+回声Mon Mon +睡眠2 +一天太阳星期一星期二结婚星期四星期五坐+回声星期二星期二…

停在未绑定变量

脚本通常会忽略的变量没有定义。如果你使用nounset选项,如以下示例所示,他们将会退出,而不是继续运行。

美元猫NoSuchVar # !/bin/bash设置- o nounset echo $ 1 echo $ 2 $ $ NoSuchVar 1
1。/ NoSuchVar:第6行:$ 2:未绑定变量

使用短形式的选择

通常是更有用的设置选项在脚本中使用他们的全名,这使脚本更易于阅读,但是你可以选择使用他们的简写形式。例如,xtrace选项可以调用的命令设置- o xtrace正如前面所示的示例中。然而,它可以使用简单的命令集设置- x。许多bash选项这样的单个字符的名称,可以使用“设置- ?”格式。这些信息可以在bash手册页,但下面的列表应该使这一切变得更简单。

选择短形式= = = = = = = = = = = = = = = = allexport——braceexpand - b errexit - e errtrace - e functrace - t hashall - h histexpand - k - h关键字监控- m noclobber - c noexec - n noglob - f通知- b nounset - u onecmd物理- p - t特权- p详细- v xtrace - x

显示选项

生成一个可用的选项列表与bash和他们是否积极与否,你可以使用设置- o命令不带参数。我使用了设置- o |列命令在命令行生成以下输出和调整它轻轻列排队所以很容易阅读,因为列对齐扔下了一个冗长的选项名称(interactive-comments)。

allexport脱离nounset ignoreeof braceexpand在interactive-comments onecmd了emacs在关键字从物理关闭errexit监控在pipefail脱离noclobber errtrace脱离特权了posix脱离noexec functrace hashall noglob关闭详细了histexpand nolog关闭vi历史通知了xtrace关闭

请注意,大部分的bash选项是关闭的。

看哪个选项启用脚本,使用相同的设置- o命令。如下所示的脚本将活动选项列表如上所示,但也会显示活跃的简洁one-letter-per-option格式选项。

# !/bin/bash设置- o回声= = = = = = = = = = = = = = = = = = = = = = = = = = = printf % s \ \ n”——“美元

这是一个示例的输出:

allexport braceexpand在emacs脱离errtrace errexit脱离hashall functrace histexpand关闭历史脱离interactive-comments ignoreeof字关闭监视器脱离noexec noclobber脱离nolog noglob了通知了nounset脱离身体脱离posix pipefail onecmd特权了详细了六世从xtrace了= = = = = = = = = = = = = = = = = = = = = = = = = = = hB

注意,“h”和“B”在这个输出的最后一行反映的状态hashall(h)和braceexpand(B)选项。

总结

更多的了解如何使用bash中的可用选项控制脚本运行的方式。我希望这篇文章能让你去一个很好的开始。

加入网络社区足球竞猜app软件脸谱网LinkedIn上面的评论主题思想。
相关:

版权©2022 IDG通信公司。足球竞彩网下载