web-dev-qa-db-ja.com

ホスト名と現在のディレクトリを表示するためにKornShellでプロンプトをカスタム表示するにはどうすればよいですか?

SolarisでKornShell(ksh)を使用していますが、現在PS1のenv変数は次のとおりです。

PS1="${HOSTNAME}:\${PWD} \$ "

そして、プロンプトが表示されます:hostname:/full/path/to/current/directory $

ただし、次のように表示したいと思います:hostname:directory $

つまり、ホスト名と現在のディレクトリの名前だけを表示するにはどうすればよいですか。つまり、tmpまたは~またはpublic_htmlなど?

10
daveslab

kshのmanページ を読んでから

 PS1 = "$ {HOSTNAME}:\ $ {PWD ## * /}\$" 

SunOS5.8のデフォルトのkshでテスト済み

18
Rudi Bierach

ENV =〜/ .kshrc、次に.kshrc内:

function _cd {
  \cd "$@"
  PS1=$(
    print -n "$LOGNAME@$HOSTNAME:"
    if [[ "${PWD#$HOME}" != "$PWD" ]]; then
      print -n "~${PWD#$HOME}"
    else
      print -n "$PWD"
    fi
    print "$ "
  )
}

alias cd=_cd

cd "$PWD"

ブラッド

3
Brad
Host=`hostname`
PS1='$(print -n "[${USER}@${Host%%.*} ";[[ "$HOME" == "$PWD" ]] && print -n "~" ||([[ "${PWD##*/}" == "" ]] && print -n "/" || print -n "${PWD##*/}");print "]$")'
1
Robin Hoo