On Wed, Dec 28, 2005 at 01:03:09PM -0500, Yaroslav Halchenko wrote:
|| Please advise since I am not sure against which package to file a bug.
|| First I mentioned weird behavior with hostname and filed a bug against
|| it (look below in the quotes). Apparently it might be not a bug of
|| hostname at all... There is something else weird is happening
||
|| *> rsh node19 '/bin/echo 1111; /bin/echo 123'
|| 1111
|| 123
|| > rsh node19 /bin/sh -c '/bin/echo 1111; /bin/echo 123'
||
|| 123
|| *> rsh node19 /bin/tcsh -c '/bin/echo 1111; /bin/echo 123'
||
|| 123
|| *> ssh node19 /bin/tcsh -c '/bin/echo 1111; /bin/echo 123'
||
|| 123
It's not a bug. It's a feature. :)
The arguments to rsh/ssh are concatenated with spaces and passed to your
login shell (say $SHELL) with the -c argument. So it runs:
$SHELL -c '/bin/echo 1111; bin/echo 123'
$SHELL -c '/bin/sh -c /bin/echo 1111; /bin/echo 123'
$SHELL -c '/bin/tcsh -c /bin/echo 1111; /bin/echo 123'
$SHELL -c '/bin/tcsh -c /bin/echo 1111; /bin/echo 123'
The inner shell sees arguments (quoted for clarity):
/bin/sh -c '/bin/echo' '1111'
/bin/tcsh -c '/bin/echo' '1111'
/bin/tcsh -c '/bin/echo' '1111'
So it runs the command /bin/echo with $1=1111. However, /bin/echo
doesn't use $1, and only prints an empty line which you see.
After that, the login shell runs /bin/echo 123, which prints 123 as
you see.
Ciao. Vincent.
--
Vincent Zweije <zweije@xs4all.nl> | "If you're flamed in a group you
<http://www.xs4all.nl/~zweije/> | don't read, does anybody get burnt?"
[Xhost should be taken out and shot] | -- Paul Tomblin on a.s.r.
Attachment:
signature.asc
Description: Digital signature