$ mksh -c 'v="foo!one!two!three"; IFS="!"; printf %s\? ${v#foo}; echo'
??one?two?three?

Expected output (as on all non-mksh shells):
?one?two?three?

So field-splitting ${var#foo} on non-whitespace IFS creates an extra initial empty field.

(mksh R49 and earlier had a similar bug with whitespace IFS; as of R50 it only occurs with non-whitespace IFS.)

--
modernish -- harness the shell
https://github.com/modernish/modernish

Reply via email to