기본 셸로 사용되는 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"에 추가하십시오.