Bash 从IP路由命令中抑制错误

Bash 从IP路由命令中抑制错误,bash,Bash,我有一个shell脚本,可以获取IPv4地址。以下是我正在使用的命令: ip route get 8.8.8.8 | awk 'NR==1 {print $NF}' 我尝试在纯IPv6环境中运行相同的命令,但出现以下错误: RTNETLINK answers: Network is unreachable 有没有办法抑制这个错误?我的意思是说,我不想在控制台日志中打印任何这样的错误 我尝试过: ip route get 8.8.8.8 | awk 'NR==1 {print $NF}' 2&

我有一个shell脚本,可以获取IPv4地址。以下是我正在使用的命令:

ip route get 8.8.8.8 | awk 'NR==1 {print $NF}'
我尝试在纯IPv6环境中运行相同的命令,但出现以下错误:

RTNETLINK answers: Network is unreachable
有没有办法抑制这个错误?我的意思是说,我不想在控制台日志中打印任何这样的错误

我尝试过:

ip route get 8.8.8.8 | awk 'NR==1 {print $NF}' 2> /dev/null
但是我仍然可以看到错误。

您尝试了:

ip route get 8.8.8.8 | awk 'NR==1 {print $NF}' 2> /dev/null
问题是2>应用于awk命令,当然,它不会将任何错误打印到它的stderr。您希望抑制来自ip的错误。因此,您拥有重定向ip的stderr


首先尝试重定向错误。。ip路由获取8.8.8.8 2>/dev/null | awk'NR==1{print$NF}'
ip route get 8.8.8.8 2> /dev/null | awk 'NR==1 {print $NF}'