在用作默认 shell 的 AIX 机器上,ksh
我希望提示符显示日期和时间,后跟换行符\n
,以及计算机名称和工作目录。
就像是:
2014/08/05 10:58:43
[username]machinename:/some/path/here $
我尝试过以下方法:
unset _Y _M _D _h _m _s
eval $(date "+_Y=%Y;_M=%m;_D=%d;_h=%H;_m=%M;_s=%S")
((SECONDS=3600*${_h#0}+60*${_m#0}+${_s#0}))
typeset -Z2 _h _m _s
_tsub="(_m=(SECONDS/60%60)) == (_h=(SECONDS/3600%24)) + (_s=(SECONDS%60))"
_timehm='${_x[_tsub]}$_h:${_m}'
_timehms='${_x[_tsub]}$_h:$_m:${_s}'
_timedhms=$_Y'/'$_M'/'$_D" "'${_x[_tsub]}$_h:$_m:${_s}'
PS1="$_timedhms'\n' "'[USERNAME]MACHINE:${PWD#$HOME/} $ '
但是,日期/时间和提示的其余部分之间没有换行符。现在看来无论我尝试什么引号组合,我都无法在 PS1 中出现换行符。
答案1
您可以在以下位置使用文字换行符PS1
:
PS1="$_timedhms
> [USERNAME]MACHINE:${PWD#$HOME/} $ "
或$'\n'
与 ksh93 一起使用:
PS1="$_timedhms$'\n' [USERNAME]MACHINE:${PWD#$HOME/} $ "
答案2
有一个非常简单的方法可以做到这一点:
export PS1=$(echo "\033[01;33m"`date +%D`" "`date +%T`"\033[0m""\n"`whoami`@"\033[3;36m"`hostname`"\033[0m"':$PWD'#)
如果您想永久设置此项,请将该条目添加到“/etc/profile”中。