0

例如,我在 bash 脚本中编写了一堆 iptables 规则。当我运行脚本时,shell 说iptables: No chain/target/match by that name.我不知道​​发生了什么,所以我将每一行复制并粘贴到 shell 中并分别运行它们以找出哪一行引起了麻烦。顺便提一句。事实证明,我将“OUTUT”而不是“OUTPUT”放在一个规则中。

无论如何shell可以告诉我喜欢[line 53]: iptables: No chain/target/match by that name.,所以我知道问题出在哪里?

4

2 回答 2

0

几乎所有程序都返回成功和错误条件。您可以对脚本调用的每个程序进行错误检查,并对错误采取适当的措施(如撤消先前的工作、退出等)。如果第 4 行在第 3 行失败时永远不应该执行,这将特别有用。

刚才调用的程序的退出状态保存在$? .

示例(伪代码 - 您需要修改语法以使其正确)

 Iptables foo bar baz; if ($? != 0) echo 'failed to update iptables' && exit 1; fi

此外,您可以使用 set -f 、 set -v 和 set -x 打开各种级别的跟踪。有关完整详细信息,请参阅下面的链接。

http://tldp.org/LDP/abs/html/exit-status.html http://tldp.org/LDP/Bash-Beginners-Guide/html/sect_02_03.html

于 2013-10-13T21:47:41.943 回答
0

我不是 bash 专家,但我正在做的是添加echo有关进度和read(等到按键)的信息,这将让我逐步完成该过程。

于 2013-10-13T21:36:42.223 回答