Как получить время прежде, чем запустить команду каждый раз в терминале?

Я хотел бы тот каждый раз, когда я выполняю команду в терминале, мне отобразили время в моем термине затем выполняемая команда.

2
задан 12 August 2017 в 06:21

4 ответа

Можно просто работать

 PROMPT_COMMAND="date"

на Вашем терминале затем каждый раз, когда команда, работал на Вашем терминале, текущая дата и время будет распечатана на Вашем терминале. Как предложенный by@pa4080, для создания этого постоянным, добавляют PROMPT_COMMAND="date" к Вашему ~/.bashrc файл.

От удара человека:

PROMPT_COMMAND

Если установлено, значение выполняется как команда до издания каждой основной подсказки.

Я думаю, что можно использовать ту же команду PROMPT_COMMAND= для выполнения почти "чего-либо", Вы хотите работать, когда команда, работал на терминале.

При использовании tmux он также отображает время на углу:

tmux

8
ответ дан 2 December 2019 в 01:26

Принятие Вас выполняет Bash, можно установить PROMPT_COMMAND к команде, которая выполняется, когда подсказка распечатывается. Точно так же Вы могли выполнить произвольную команду включением замены команды в подсказке:

$ PS1='[$(date +"%T")] \u@\h \w\$ '
[22:17:54] user@somehost /tmp$ 

Но это достаточно распространено, что Bash поддерживает его с полки

\D{format}
Формат передается strftime(3) и результат вставляется в строку приглашения; пустой формат приводит к определенному для локали представлению времени. Фигурные скобки требуются.

Так, так же к предыдущему

$ PS1='[\D{%T}] \u@\h \w\$ '

Но они печатают время, подсказка была распечатана. Это может быть долгим временем, прежде чем следующая команда будет выполнена. Для получения времени, команда запускается, мы можем использовать DEBUG прерывание, которое работает однажды за каждой выполняемой командной строкой.

$ starttime() { date +"Command started at %T"; }
$ trap starttime DEBUG
$ ls -l /dev/null
Command started at 22:25:07
crw-rw-rw- 1 root root 1, 3 Jul 18 21:46 /dev/null

DEBUG прерывание могло также использовать $BASH_COMMAND переменная, которая содержит выполняемую команду, но это, вероятно, не очень полезно начиная с командной строки, видима при подсказке так или иначе.

3
ответ дан 2 December 2019 в 01:26

используйте zsh терминал, этот терминал может показать команду выполнения времени датыenter image description here

https://github.com/robbyrussell/oh-my-zsh/wiki/themes#rkj-repos https://github.com/robbyrussell/oh-my-zsh/wiki/themes#xiong-chiamiov

1
ответ дан 2 December 2019 в 01:26
  1. Редактировать файл .bashrc

    изменить ~/.bashrc
    
  2. Найдите следующий текст:

    if [ "$color_prompt" = yes ]; тогда
    PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\] :\[\033[01;34m\]\w\ [\033[00m\]\$ '
    
  3. И заменить на:

    if [ "$color_prompt" = yes ]; тогда
    PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u\[\033[00m\] [\d|\t]:\[\033[01;34m\ ]\w\[\033[00m\]\$ '
    
  4. Перезапустите терминал для проверки.

Sample output in terminal

1
ответ дан 7 March 2020 в 08:57

Другие вопросы по тегам:

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