Denis Ovsienko via cfarm-users wrote:
On Sun, 15 Sep 2024 15:39:18 +0000
Peter Gutmann via cfarm-users <cfarm-users@lists.tetaneutral.net> wrote:

(OK, it's not quite that bad, but several things are pre-Posix at
least, e.g. /bin/sh doesn't understand "$(...)" but requires `...`).

I ran into this particular thing after following the advice of
shellcheck and replacing `` with $(), which promptly broke the script
on Solaris 10, which is supposed to be POSIX-compliant, at least in the
shell department.  As far as I remember, eventually the explanation was
that in Solaris before 11 /bin/sh conformed to an older version of POSIX
that does not have $().

I think that there *is* a POSIX shell on Solaris 10, it is just that /bin/sh is not that shell. I just checked and running "PATH=`getconf PATH` command -v sh" returns "/usr/xpg4/bin/sh" on cfarm210 and "/usr/bin/sh" on cfarm111 so that might be short way to find a POSIX shell on both Solaris 10 and AIX 7.1. In fact, even /bin/sh on cfarm111 accepts $() notation.

  So my script ended up using `` again and
disabling shellcheck warning SC2006.

Other shellcheck warnings that I have had to generally inhibit include SC2268 and SC2003 (Solaris 10 /bin/sh needs expr(1) instead of POSIX arithmetic). The "dejagnu" general command launcher script in DejaGnu has had considerable adaptation to handle some of these weirdnesses found at the CFarm and otherwise probably would not work on those systems.

(Very interestingly, now that I check, "PATH=`getconf PATH` command -v awk" on cfarm210 finds /usr/xpg4/bin/awk, which is a POSIX Awk, while /usr/bin/awk on that system is non-POSIX. I think that I may need to revise the dejagnu(1) launcher in light of this information. (It currently directly looks in /usr/xpg4/bin for an awk(1) before searching $PATH, a quick workaround to make it work on cfarm210.) It would also be nice if command scripts could assume a POSIX shell, even if the launcher itself cannot.) (Also interestingly, "command -p -v awk" finds /usr/bin/awk on cfarm210; apparently command(1) in Solaris 10 either ignores the "-p" option or does not use the same "system tools path" value that getconf(1) returns.)



-- Jacob
_______________________________________________
cfarm-users mailing list
cfarm-users@lists.tetaneutral.net
https://lists.tetaneutral.net/listinfo/cfarm-users

Reply via email to