Ksh
如何讓 KornShell 在提示中顯示日期和時間?
在用作預設 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 中出現換行符。
您可以在中使用文字換行符
PS1
:PS1="$_timedhms > [USERNAME]MACHINE:${PWD#$HOME/} $ "
或
$'\n'
與 ksh93 一起使用:PS1="$_timedhms$'\n' [USERNAME]MACHINE:${PWD#$HOME/} $ "
有一種非常簡單的方法可以做到這一點:
export PS1=$(echo "\033[01;33m"`date +%D`" "`date +%T`"\033[0m""\n"`whoami`@"\033[3;36m"`hostname`"\033[0m"':$PWD'#)
如果您想永久設置此項,請將條目添加到“/etc/profile”。