如果在执行 ip route add
命令时出现 “RTNETLINK answers: File exists” 错误,这通常表示要添加的路由已经存在。为了避免报错,可以在执行前先检查该路由是否已存在,若存在则无需再次添加。
以下是一个示例代码片段,用于在 Golang 中执行命令并处理错误:
package main
import (
"fmt"
"os/exec"
"strings"
)
func main() {
route := "192.168.0.0/24"
cmd := exec.Command("ip", "route", "add", route)
output, err := cmd.CombinedOutput()
if err != nil {
errMsg := string(output)
// 检查错误消息是否为 "File exists"
if strings.Contains(errMsg, "File exists") {
fmt.Printf("Route %s already exists\n", route)
return
}
fmt.Printf("Failed to add route: %s\n", errMsg)
return
}
fmt.Println("Route added successfully")
}
以上代码会先执行命令,并捕获输出和错误。然后检查错误消息中是否包含 “File exists” 字符串,如果是,则说明路由已存在;否则打印实际的错误消息。这样就可以根据需要进行逻辑处理了。
内容由零声教学AI助手提供,问题来源于学员提问