[ros-users] [Ros-developers] suggest new ros shebang command

Thibault Kruse kruset at in.tum.de
Fri Aug 12 21:17:27 UTC 2011

> Why is the "rosrun ABSOLUTE_FILENAME [ARGS]" necessary for some
> scripts?

Because if I put
#! /usr/bin/env rosrun

in a script file named foobar.xyz, make foobar.xyz executable, and call

$ ./foobar.xyz arg1 arg2 arg3

then bash will effectively call

rosrun ./foobar.xyz arg1 arg2 arg3

(So actually the syntax is just rosrun FILENAME [ARGS], not necessarily 
the absolute path )

So the syntax is merely for shebang, NOT for anyone ever putting
rosrun /path/to/filename
into any script or the command line.

>     From the perspective of command-line usage, it doesn't add
> much value as it is equivalent to the user typing:
Absolutely, yes. That's my working assumption, the reason why I think 
rosrun could be used instead of rosbang. That's what rosbang would also 
do. So a rosbang command would be totally useless for command line usage.

The syntax of rosbang would equally be
and its effect would be the same as
There is no reason why any user would ever type rosbang into the command 
line. It would exclusively be used in
#! /usr/bin/env rosbang

> If there is a special need for a script, I would suggest a special
> option, e.g. '-f', to flag the different usage and make it
> unambiguous.
No, not only is that not necessary, but it would make it impossible to 
use rosrun that way, as
#! /usr/bin/env rosrun -f
is not possible.

I was not aware of the rosexec thread. Went through it now. Introducing 
rosexec PACKAGE/KEY as syntax would overlap with rosexec 
directory/filename syntax, as far as i can see those could never be 
merged into one command without the possibility of surprising the user 
with unexpected actions in rare cases. So if that is still a 
perspective, a separate command like rosbang might be wiser.

More information about the ros-users mailing list