デフォルトのシェルとして使用される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」に追加します。