Кто-нибудь знает способ поставить команду 'time' перед каждой командой в сеансе bash?
Кто-нибудь знает способ поставить команду 'time' перед каждой командой в сеансе bash?
Ответы:
Извините за неправильный ответ раньше, я неправильно понял ваш вопрос.
Чтобы добавить время перед каждой командой, которую вы выполняете в оболочке, вы можете сделать что-то вроде этого
bind 'RETURN: "\e[1~time \e[4~\n"'
Это повторно свяжет ключ возврата. Теперь каждый раз, когда вы нажимаете клавишу возврата вместо ввода новой строки \ n, она будет переходить к началу строки, вводить текст «время» и пробел, переходить к концу строки и вводить новую строку \ n, создавая тем самым желаемую эффект.
Если вы не хотите жертвовать своим ключом ввода, вы можете создать «второй» ключ ввода-ввода, например, 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
делает (он измеряет, сколько времени потребовалось для выполнения команды).