[External] : configure shell game
Nico Williams
nico at cryptonector.com
Wed Jun 3 01:28:41 AEST 2026
On Tue, Jun 02, 2026 at 05:11:44PM +0200, Jan Pechanec via openssh-unix-dev wrote:
> /bin/sh on Solaris 11+ is ksh93 which considers ``, and documents it in
> its man page, as obsolete. Retrospectively, using ksh93 as /bin/sh was
> not a good decision but it would be close to imposible to change it now.
I thought ksh93 recognizes when it's invoked as 'sh' and tries to act as
a POSIX shell in that case. Unless its POSIX mode is incomplete in
obnoxious ways I wouldn't say it was a mistake to make ks93 /bin/sh. (I
do think it was a mistake though.)
> We seriously considered that but as it would likely break large amount
> of existing user scripts using ksh93 features without explicitly calling
> /bin/ksh in the shebang, we decided against that.
I commend you for not making such a breaking change.
> ksh93 issues the warning with the -n option, which is used in
> test-exec.sh. And it does not distinguish between syntax errors and
> warnings.
Syntax errors don't cause /bin/sh -n to exit with an error? Or warnings
cause it to exit with an error? The former would be quite bad and worth
fixing; the latter would be quite obnoxious and also worth fixing.
The warning message is somewhat useful: $() is POSIX now, and $() is
much better than ``.
Users usually can't do anything with such warnings, which makes them
more an annoyance than anything.
Nico
--
More information about the openssh-unix-dev
mailing list