Thread (2 messages) 2 messages, 2 authors, 2015-06-26

Re: iproute2 / question: returncode when query a match

From: Stephen Hemminger <stephen@networkplumber.org>
Date: 2015-06-26 22:30:44

Possibly related (same subject, not in this thread)

On Fri, 26 Jun 2015 09:31:45 +0200
Bastian Bittorf [off-list ref] wrote:
* Vadim Kochan [off-list ref] [15.06.2015 18:36]:
quoted
quoted
root@box:~ ip route list exact '0.0.0.0/8'
root@box:~ echo $?
0

i expected an RC of != 0 when there is no match.
is this by design?

root@box:~ ip -V
ip utility, iproute2-ss4.0.0-1-openwrt
I think that RC != 0 only in case error happened, but may be its good
idea to add such behaviour or add option to consider ret code
if there is no results ?
ofcourse this is only useful for scripting:

# ip route list exact '0.0.0.0/8' || do_some_action

instead of the now used construct:
# [ -n "$( ip route list exact '0.0.0.0/8' )" ] || do_some_action

i'am sure there are other queries, where this also
makes sense. there are 2 possible ways for implementing this IMHO:

introduce a commandlineswitch like --pedantic
or just always throw an error 1 when there is no match like this:

root@box:~ echo foo | grep bar
root@box:~ echo $?
1

more opinions about that?

bye, bastian
Exit codes for ip route are already used to handle errors.
See current man page.

If you want to handle both errors and no match, the scripting tricks
to look for empty output are better.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help