*Synopsis*: ksh93 has strange default PS1 CR 6913851 changed on Jan 5 2010 by <User 1-1SURPB>
=== Field ============ === New Value ============= === Old Value ============= Public Comments New Note ====================== =========================== =========================== *Change Request ID*: 6913851 *Synopsis*: ksh93 has strange default PS1 Product: solaris Category: shell Subcategory: korn93 Type: Defect Subtype: Status: 1-Dispatched Substatus: Priority: 4-Low Introduced In Release: Introduced In Build: Responsible Engineer: Keywords: === *Description* ============================================================ $ env - ksh93 $ echo $PS1 %s" COLUMNS "" printf "%...@%s:" "${LOGNAME}" "$(/usr/bin/hostname)" ellip="${ [[ "${LC_ALL}/${LANG}" == ~(Elr)(.*UTF-8/.*|/.*UTF-8) ]] && printf "\u[2026] " || print "..." ; }" p="${PWD/~(El)${HOME}/\~}" (( ${#p} > 30 )) && print -r -n -- "${ellip}${p:${#p}-30:30}" || print -r -n -- "${p}" [[ "${LOGNAME}" == "root" ]] && print -n "# " || print -n "\$ " ) $ set | grep PS1 PS1=$'$(set +o xtrace +o errexit\n printf "%*s\\r%s" COLUMNS ""\n printf "%...@%s:" "${LOGNAME}" "$(/usr/bin/hostname)"\n\t\tellip="${\n\t\t\t[[ "${LC_ALL}/${LANG}" == ~(Elr)(.*UTF-8/.*|/.*UTF-8) ]] &&\n\t\t\t\tprintf "\\u[2026]\\n" || print "..." ; }"\n\t\tp="${PWD/~(El)${HOME}/\\~}"\n\t\t(( ${#p} > 30 )) &&\n\t\t\tprint -r -n -- "${ellip}${p:${#p}-30:30}" ||\n\t\t\tprint -r -n -- "${p}"\n\t\t[[ "${LOGNAME}" == "root" ]] && print -n "# " || print -n "\\$ "\n\t\t)' $ uname -a SunOS xylabtecra 5.11 snv_130 i86pc i386 i86pc With LOGNAME not set: @xylabtecra:~/export/home/mj162486 *** (#1 of 1): 2010-01-04 09:29:04 GMT+00:00 <User 1-1SURPB> === *Public Comments* ======================================================== OpenSolaris ksh93 project lead Roland Mainz says: The PS1 value reported in this bug is set in /etc/ksh.kshrc to provide an user-friendly machine-wide default (see PSARC 2006/587). ksh93 itself defaults to '$ ' as defined in the standard (using /etc/ksh.kshrc to set PS1 allows us to both be standard-conformant and be user-friendly... :-) ). Or short: This is not a bug. *** (#1 of 5): 2010-01-05 03:37:41 GMT+00:00 <User 1-5Q-1267> Well it is bug. There are at least two mistakes I see: 1) LOGNAME is not set in default enviroment, and the prompt looks as showed in description then 2) there is misleading ~ between : and <pwd> - the replacement of HOME does not work: @xylabone:~/var$ pwd /var I will not study that overcomplicated setting to find the reason for 2), 1) is probably separate CR. *** (#2 of 5): 2010-01-05 09:06:03 GMT+00:00 <User 1-1SURPB> The reason for misleading ~ in @xylabone:~/var$ pwd /var is probably that your $HOME is not set because you used env - ksh93 (correct me if I'm wrong). But the PS1 is wrong anyway, for example if HOME=/ab PWD=/abc/de it will show ~c/de as your path which is wrong. To fix both issues (empty $HOME and HOME being part of PWD), replace this: p="${PWD/~(El)${HOME}/\\~}" with this: case "$HOME" in ?*)p="${P/~(El)${HOME}(\/|$)/\~\1}";;*)p=$P;;esac Oh yes, now someone tell me that perl is unreadable :) *** (#3 of 5): 2010-01-05 10:07:40 GMT+00:00 <User 1-PWPBN> Shorter version of my fix without using 'case' p=$P;[[ -n $HOME ]]&&p="${P/~(El)${HOME}(\/|$)/\~\1}" *** (#4 of 5): 2010-01-05 10:10:29 GMT+00:00 <User 1-PWPBN> Small note - how long will we have it? :-) As additional note - could be LOGNAME==root separated in kshrc and not evaluated every time? Maybe also other parts of PS1 (like ellip) as it is wasting of performance to evaluate it for every line input, isn't it? *** (#5 of 5): 2010-01-05 10:19:52 GMT+00:00 <User 1-1SURPB> === *Workaround* ============================================================= === *Additional Details* ===================================================== Targeted Release: Commit To Fix In Build: Fixed In Build: Integrated In Build: Verified In Build: See Also: 6913823 Duplicate of: Hooks: Hook1: Hook2: Hook3: Hook4: Hook5: Hook6: Program Management: Root Cause: Fix Affects Documentation: No Fix Affects Localization: No === *History* ================================================================ Date Submitted: 2010-01-04 09:29:03 GMT+00:00 Submitted By: <User 1-1SURPB> Status Changed Date Updated Updated By === *Service Request* ======================================================== Impact: Limited Functionality: Primary Severity: 3 Product Name: solaris Product Release: osol_2009.06 Product Build: osol_2009.06 Operating System: snv_130 Hardware: x86 Submitted Date: 2010-01-04 09:29:04 GMT+00:00 === *Multiple Release (MR) Cluster* - 0 ======================================