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