[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:
>
> ./ABSOLUTE_FILENAME [ARGS]
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
rosbang FILENAME [ARGS]
and its effect would be the same as
./FILENAME [ARGS]
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