Date: Sat, 21 Dec 2002 13:33:01 +0100 (CET) From: Jens Schweikhardt <schweikh@FreeBSD.org> To: FreeBSD-gnats-submit@FreeBSD.org Subject: standards/46441: /bin/sh does not do parameter expansion in PS1, PS2, PS4 Message-ID: <200212211233.gBLCX1eX045120@hal9000.schweikhardt.net>
next in thread | raw e-mail | index | archive | help
>Number: 46441 >Category: standards >Synopsis: /bin/sh does not do parameter expansion in PS1, PS2, PS4 >Confidential: no >Severity: non-critical >Priority: low >Responsible: freebsd-standards >State: open >Quarter: >Keywords: >Date-Required: >Class: sw-bug >Submitter-Id: current-users >Arrival-Date: Sat Dec 21 04:40:01 PST 2002 >Closed-Date: >Last-Modified: >Originator: Jens Schweikhardt >Release: FreeBSD 5.0-CURRENT i386 >Organization: Digital Details >Environment: System: FreeBSD hal9000.schweikhardt.net 5.0-CURRENT FreeBSD 5.0-CURRENT #1: Fri Nov 29 11:10:37 CET 2002 toor@hal9000.schweikhardt.net:/usr/obj/src/current/sys/HAL9000 i386 >Description: If our /bin/sh is intended to support the SUSv3 User Portability (UP) option, it must do parameter expansion in PS[124]. If not, consider this PR null and void, even where prohibited. Quoting IEEE Std 1003.1-2001: PS1 Each time an interactive shell is ready to read a command, the value of this variable shall be subjected to parameter expansion and written to standard error. The default value shall be "$ " . For users who have specific additional implementation-defined privileges, the default may be another, implementation-defined value. The shell shall replace each instance of the character '!' in PS1 with the history file number of the next command to be typed. Escaping the '!' with another '!' (that is, "!!" ) shall place the literal character '!' in the prompt. This volume of IEEE Std 1003.1-2001 specifies the effects of the variable only for systems supporting the User Portability Utilities option. PS2 Each time the user enters a <newline> prior to completing a command line in an interactive shell, the value of this variable shall be subjected to parameter expansion and written to standard error. The default value is "> " . This volume of IEEE Std 1003.1-2001 specifies the effects of the variable only for systems supporting the User Portability Utilities option. PS4 When an execution trace ( set -x) is being performed in an interactive shell, before each line in the execution trace, the value of this variable shall be subjected to parameter expansion and written to standard error. The default value is "+ " . This volume of IEEE Std 1003.1-2001 specifies the effects of the variable only for systems supporting the User Portability Utilities option. PWD Set by the shell to be an absolute pathname of the current working directory, containing no components of type symbolic link, no components that are dot, and no components that are dot-dot when the shell is initialized. If an application sets or unsets the value of PWD, the behaviors of the cd and pwd utilities are unspecified. >How-To-Repeat: $ /bin/sh $ PS1='$PWD >' $PWD >cd /tmp <- should expand $PWD $PWD >PS2='$PWD more:' $PWD >foo () $PWD more:{ $PWD more:} $PWD >PS4='$PWD -x : ' $PWD >set -x $PWD >foo + foo <- PS4 seems hard coded to "+ " >Fix: >Release-Note: >Audit-Trail: >Unformatted: To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-standards" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200212211233.gBLCX1eX045120>