有一个脚本调用其他脚本,他们叫别人…我不知道究竟哪个脚本被调用,其中有多less。 我只知道,其中一些正在添加iptables规则,当我调用根脚本时,我得到这个错误。
iptables: No chain/target/match by that name. iptables: No chain/target/match by that name.
我的问题是,我无法find哪个脚本输出这个错误。 有什么方法或工具可以学习吗?
您可以使用bash -x
跟踪一系列脚本的执行情况
bash -x /path/to/your/script
从这里你可以找出哪些脚本正在被调用。 您可以使用-e
开关强制脚本提前中止
bash -e -x /path/to/your/script
这可以节省你不得不通过大量的输出
您可以简单地将执行脚本的stdout和sterrredirect到一个文件。 每个脚本输出可以被定向到一个单独的文件。 在这种情况下,您可以查看这些文件并检查哪个脚本返回了错误。
要redirect输出,可以使用:
/path/to/script > /path/to/logfile.log
要redirectstdout和stderr,可以使用:
/path/to/script > /path/to/logfile.log 2>&1
您可以使用>>
replace>
以附加到文件,而不是每次都截断它。