Как я могу заставить 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.

Редактирование: после того, как назначено SECONDS, назовите пробелы, а редактирование должно быть 6 символов, поэтому я расскажу вам здесь.

2 Solutions collect form web for “Как я могу заставить KornShell отображать дату и время в подсказке?”

Вы можете использовать литерал новой строки в 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'.

  • Как динамически использовать переменную внутри цикла
  • Сравнение времени файла в ksh
  • В чем опасность установки максимального предела максимальным дескрипторам файлов для каждого процесса?
  • Как сравнить два значения float в ksh?
  • Сценарий оболочки Bash / Korn, отредактированный в Windows, вызывает ошибку '... ^ M: not found'
  • Получение размера только для файлов du
  • Сравните два массива в KSH и выведите разницу
  • ksh - карта Ctrl-D для выхода из оболочки
  • комплексная замена чистого оболочка в переменной
  • цитаты внутри backticks внутри цитат в ksh
  • деформировать, но сохранить -v подробный вывод отдельно от STDERR
  • Установка ksh в качестве стандартной оболочки в Redhat: Foolhardy?
  • Linux и Unix - лучшая ОС в мире.