在这个问题中如何让 KornShell 在提示符中显示日期和时间?所有变量在 ksh 中都是可见的,除了 PS1,它似乎以某种方式被替换。
在处理我的 .profile 后,如何确定是什么正在重置 PS1?
答案1
感谢@StéphaneChazelas - 我能够按照我想要的方式获得 PS1 提示符。
我从.profile
文件中删除了自定义项,并将以下内容附加到我的.envfile
.我不知道这一点,但.envfile
已处理后文件.profile
。
#set the prompt to include the date and time
set -o allexport
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}'
_hn=`hostname`
typeset -u _hn
_un=`who am i | awk '{print $1}'`
typeset -u _un
export PS1="$_timedhms
"'['$_un']'$_hn':${PWD#$HOME/} $ '
set +o allexport
现在,我的提示是这样的两行:
2014/08/06 12:34:56
[myusername]machinename:/present/working/directory