KornShellにプロンプ​​トに日付と時刻を表示させるにはどうすればよいですか?

KornShellにプロンプ​​トに日付と時刻を表示させるにはどうすればよいですか?

デフォルトのシェルとして使用される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/} $ "

おすすめ記事