目标
限制 的输出dhclient
。
代码
dhclient eth0|sed 's/answers//'
预期行为
RTNETLINK : Operation not permitted
得到
RTNETLINK answers: Operation not permitted
管道 ifconfig 有效
ifconfig eth| sed 's/eth//'
->[cut the search]:flags=41...
环境
sed (GNU sed) 4.7 Packaged by Debian
答案1
该dhclient
命令需要以 root 身份运行。以普通用户身份运行该命令时,您会收到一条错误消息
$ dhclient enp1s0:
RTNETLINK answers: Operation not permitted
错误消息通常会打印到标准错误 (stderr),而管道 ( |
) 将仅重定向标准输出 ( stdout
)。这就是您的 sed 命令不起作用的原因:它实际上根本没有得到任何输入,您看到的是第一个命令的标准错误。
要重定向和解析标准错误,可以使用2>&1
(重定向输出流 2、标准错误到输出流 1、标准输出):
$ dhclient enp1s0 2>&1 | sed 's/answers//'
RTNETLINK : Operation not permitted
有关这两个流及其重定向方法的详细信息,请参阅https://askubuntu.com/a/625230/85695。