Хто-небудь знає засіб поставити команду 'time' перед кожною командою в bash сесії?
Хто-небудь знає засіб поставити команду 'time' перед кожною командою в bash сесії?
Відповіді:
Вибачте за неправильну відповідь раніше, я неправильно зрозумів ваше запитання.
Щоб додати час перед кожною командою, яку ви виконуєте на оболонці, ви можете зробити щось подібне
bind 'RETURN: "\e[1~time \e[4~\n"'
Це дозволить відновити ключ повернення. Тепер кожен раз, коли ви натискаєте return, а не писати новий рядок \ n, він перейде на початок рядка, введіть текст "час" і пробіл, перейдіть до кінця рядка і введіть новий рядок \ n, тим самим створивши потрібний ефект.
Якщо ви не хочете принести в жертву клавішу Enter, ви можете зробити "другий" контрольний ключ, як F12, прив'язуючи подібну команду
bind '"\e[24~": "\e[1~time \e[4~\n"'
Тепер замість того, щоб замінити ключ повернення, ви зв'язали F12.
Передумовою всього цього є те, що bash використовує GNU readline для читання команд. Тож readline - це хороша відправна точка для подальших маніпуляцій командами тощо.
Я розумію, що це поза межами цього питання, але ...
У zsh
(що, наскільки мені відомо, супер набір bash), якщо ви встановите у своєму .zshrc
файлі таку змінну :
export REPORTTIME=5
Кожна команда, яка займає більше 5 секунд (я майже впевнений), відображатиме результат time
. Усі команди, які швидше виконуються, не відповідають. І в таких випадках насправді все одно, тому приємно не захаращувати речі. Існує також багато інших цікавих функцій, zsh
якими ви можете насолоджуватися, перебуваючи на ній.
Включіть \ t у рядок підказок. Він включить час у вашому запиті в точку, де ви його включите. Дивіться: http://www.ibm.com/developerworks/linux/library/l-tip-prompt/
PS1 здається стандартним способом зробити щось подібне.
time
робить (він вимірює, скільки часу знадобилося для виконання команди).