Ted Unangst <t...@tedunangst.com> wrote: |On Thu, May 02, 2013 at 13:12, Steffen "Daode" Nurpmeso wrote: |> Hi, you should try |> |> echo BEFORE |> unset KSH_VERSION |> echo AFTER | |ksh: unset: KSH_VERSION is read only | |So don't unset it?
Yep it's nasty hah. Still, you get BEFORE ksh: unset: KSH_VERSION is read only and .profile is read by an interactive shell, so evaluation must not stop here, as has been revealed on the mksh(1) list -- POSIX says (XCU, chapter 2: Shell Command Language): 2.8.1 Consequences of Shell Errors For a non-interactive shell, an error condition encountered by a special built-in (see Special Built-In Utilities) or other type of utility shall cause the shell to write a diagnostic message to standard error and exit as shown in the following table: […] In all of the cases shown in the table, an interactive shell shall write a diagnostic message to standard error without exiting. The shell doesn't exit, but it stops evaluation of the startup file(s) instead of simply printing the error and setting $? to 1. Buggy imho. P.S.: thanks for CCing me, i've forgot that.. --steffen