The problem happens in other profile.d files, and also
The issue is that ksh does not set PS1 until reading
profile/initialization files, and only sets it if it is
Some initialization files in /etc/profile.d use the
# Skip all for noninteractive shells.
[ -z "$PS1" ] && return
at the start of the file, what does not work for ksh.
I believe this is not a reason to rework ksh
initialization, and the logic should be changed to
check if fd 0 is a tty, for example, as suggested by
[ ! -t 0 ] && return
or some variant, checking for the "i" character in $-
Makes sense - https://bugzilla.redhat.com/show_bug.cgi?id=614694 was about the same in the setup package, fixing this issue in /etc/profile, but profile.d scripts were never modified the same way.
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.
For information on the advisory, and where to find the updated
files, follow the link below.
If the solution does not work for you, open a new bug report.