Информация о времени работы обновлена ​​в командной строке

Проблема заключалась в том, что версия Java по умолчанию в Ubuntu 18 — это Java 11.

Итак, я использовал этот учебник , чтобы изменить версию на Java 8. И теперь она работает.

  • В основном решением были команды для изменения jdk по умолчанию:
sudo update-alternatives --install "/usr/bin/java" "java" "/usr/lib/jvm/java-6-oracle/bin/java" 1
sudo update-alternatives --install "/usr/bin/javac" "javac" "/usr/lib/jvm/java-6-oracle/bin/javac" 1
sudo update-alternatives --install "/usr/bin/javaws" "javaws" "/usr/lib/jvm/java-6-oracle/bin/javaws" 1

1
17.01.2021, 21:09
1 ответ

Сzsh:

TRAPALRM() { psvar[1]=$(uptime); zle reset-prompt; }
RPS1='%1v'
TMOUT=1

Вывод uptimeв правильном приглашении будет обновляться каждую секунду. В течение 750 мс вы не можете использовать $TMOUT, который принимает только целые числа.

Вы могли бы сделать вместо этого:

zmodload zsh/zselect
RPS1='%1v'
TRAPALRM() {
  (zselect -t 75; kill -s ALRM $$ 2> /dev/null) &|
  psvar[1]=$(uptime)
  [[ -z $WIDGET ]] || zle reset-prompt
}
precmd_functions+=(TRAPALRM)

Другим подходом может быть цикл, отправляющий информацию о времени работы каждые 750 мс в качестве coproc, используя zle -Fдля обработки вывода этогоcoproc:

zmodload zsh/system
zmodload zsh/zselect
UPTIME_TMOUT=
coproc {
  while true; do
    zselect -r 0 ${UPTIME_TMOUT:+-t} $UPTIME_TMOUT
    case $? in
      (0) IFS= read UPTIME_TMOUT || exit
          [[ -n $UPTIME_TMOUT ]] || continue;;
      (1) ;;
      (*) exit 1;;
    esac
    uptime
  done
}
sysopen -wu UPTIME_TO   -o cloexec /dev/fd/3 3>&p
sysopen -ru UPTIME_FROM -o cloexec /dev/fd/3 3<&p

handle_uptime_event() {
  if ! IFS= read -ru $UPTIME_FROM 'psvar[1]'; then
    zle -F $UPTIME_FROM
    exec {UPTIME_FROM}<&- {UPTIME_TO}>&-
    unset UPTIME_TO UPTIME_FROM
  fi
  zle reset-prompt
}

start_uptime_loop() {
  (($+UPTIME_TO)) && print -u $UPTIME_TO 75
}
stop_uptime_loop() {
  (($+UPTIME_TO)) && print -u $UPTIME_TO
}
zle -F $UPTIME_FROM handle_uptime_event
precmd_functions+=(start_uptime_loop)
preexec_functions+=(stop_uptime_loop)

RPS1=%1v
2
18.03.2021, 22:36

Теги

Похожие вопросы