NetBSD-Bugs archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: bin/16226 (Prompt expansion for /bin/sh)
Synopsis: Prompt expansion for /bin/sh
State-Changed-From-To: open->feedback
State-Changed-By: kre%NetBSD.org@localhost
State-Changed-When: Sat, 01 Jul 2017 00:05:27 +0000
State-Changed-Why:
It has been a mere 15 years (and a few months), but /bin/sh (in NetBSD current)
now has PS1 (and PS2, PS4) variable expansion (and a few ner variables to
assist with building prompts).
To get the hostname, use ${HOSTNAME} (for whatever gethostname(3) returns)
or ${HOSTNAME%%.*} for the short form.
For the current directory use ${PWD}, or ${PWD##*/} for only the last
component. For smarter expansions, wrap a function around the cd
command, something like
cd()
{
command cd "$@" || return
PDIR=${PWD}
case "${PDIR}/" in
"${HOME}/") PDIR='~'"${PDIR#${HOME}}" ;;
esac
# and any other modifications you want
}
and then use $PDIR (any name you like) in PS1 (or elsewhere).
For the $/# expansion, use $PSc
Set PS1 with a '' string to avoid expanding the values at definition time.
See sh(1) (from NetBSD current, and maybe NetBSD 8 before it gets released)
for more information on what can be done.
Hopefully this is enough to satisfy the request in this PR.
Home |
Main Index |
Thread Index |
Old Index