gpt4 book ai didi

linux - 检查脚本命令中的错误

转载 作者:太空宇宙 更新时间:2023-11-04 10:48:52 26 4
gpt4 key购买 nike

如何在运行命令之前检查命令中的错误,例如,如果我想运行 iptables 命令,但说有人在我创建的脚本变量中输入了错误的内容,例如“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

最佳答案

在 IXish 环境中,程序通常会在失败时返回一个不同于 0 的值。错误消息应记录到标准错误中,可以通过重定向文件描述符 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

关于linux - 检查脚本命令中的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31884913/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com