Because Puppy's xterm script is crap. It removes linefeeds from multiline commands but fails to replace them with semicolons (that's why you have to add them). If you want to play with it, the offending line is
Code: Select all
EXECCOMMAND="`echo -n ${*} | grep -o ' \-e .*' | sed -e 's/ \-e //'`"
The ${*} would require quoting, otherwise echo prints everything on one line, but then grep would have to be fixed too etc. etc.
Why does Puppy still contain this script? Looks like a needless wrapper script for urxvt with many pitfalls. Even in my vintage Slacko 5.6 rxvt knows the -hold option. If the lack of this option once was the only reason for the xterm script, then what's the point of keeping it?