检查脚本命令中的错误

时间:2015-08-07 19:03:44

标签: linux bash shell

如何在运行之前检查命令中的错误,例如,如果我想运行iptables命令,但是说有人在我制作的脚本变量中输入错误,例如&#34 ; asdiojaosdi"对于$ port变量,当脚本尝试将其插入iptables命令时,它会返回一个错误,我希望它回显"错误"

我希望语法检查这个巨大的命令

    iptables -t nat -A PREROUTING -p tcp -d $filip --dport $port -j DNAT --to-destination $cusip && iptables -A FORWARD -p tcp -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT && iptables -t nat -A POSTROUTING -d $cusip -j SNAT --to-source $secip && iptables -t nat -A POSTROUTING -j SNAT --to-source $filip

1 个答案:

答案 0 :(得分:1)

在IXish环境中,程序通常会在失败时返回与2不同的值。预计错误消息将记录到标准错误,可以通过重定向文件描述符#!/bin/bash program option1 option2 2>error.log.$$ result=$? if [ $result -ne 0 ]; then echo program failed with result=$result: $(cat error.log.$$) rm error.log.$$ fi 来捕获。

您可以这样测试:

{{1}}
相关问题