Как я показываю простое время работы в строке состояния tmux?

Похоже, что преимущества изменения прямо сейчас не "ни один вообще", поскольку проект был только что добавлен к ядру, имеет очень мало документации и самодостаточен как являющийся "все еще в ее красильщиках [так] банкомат".

В конечном счете сетевой драйвер связывания пространства пользователя мог обладать некоторыми из тех же преимуществ, которые FUSE (интерфейс файловой системы пространства пользователя) приносит к миру файловых систем - прежде всего, что намного легче разработать и экспериментировать с различными политиками, реализациями протокола, и т.д. Путем упрощения кода в ядре и продвижения сложности в пространство пользователя, можно также закончить с решением, которое более устойчиво в случае отказов, и это допускает более гибкие ответы на ошибки и запросы новых функций и т.д.

Эта презентация (warning:PDF) описывает мотивацию и цели проекта. Прежде всего, они надеются заменять устаревший код связывания, который является чрезмерно увеличенным в размере и сложным с чем-то, что меньше, легче поддержать, и более производительный.

7
21.04.2016, 03:47
2 ответа

Здесь можно использовать awk проанализировать вывод uptime удовлетворять Вашим потребностям как это:

set -g status-right '#[fg=red,bg=default]#(uptime | awk '{print $3}'|sed 's/,//') #[fg=blue]%a%d-%m-%Y %H:%M:%S'

Обычно uptime возвраты этот тип вывода:

$ uptime
 15:30:24 up  1:59,  4 users,  load average: 2.39, 2.08, 2.12

При помощи awk мы можем избавиться от всего около времени работы.

$ uptime | awk '{print $3}'|sed 's/,//'
2:47

Вы могли также использовать /proc/uptime получить фактические секунды, на которые система возросла и затем использует awk или perl преобразовать секунды в дни, часы, минуты, и т.д.

$ awk '{printf("%d:%02d:%02d:%02d",($1/60/60/24),($1/60/60%24),($1/60%60),($1%60))}' /proc/uptime
0:02:49:55

Это показывает секунды времени работы в DD:HH:MM:SS.

Вы могли также показать им использующий Perl:

$ cat /proc/uptime |  perl -ne '/(\d*)/ ; printf "%02d:%02d:%02d:%02d\n",int($1/86400),int(($1%86400)/36003600)/60),$1%60' 
00:02:50:53

заключение в кавычки tmux?

Как @JasonwRyan упомянутый в комментариях, tmux может быть известно трудным заключить командам в кавычки просто право. Вот то, как Вы могли заключить в кавычки awk пример, который я обеспечил выше.

set -g status-right '#[fg=red,bg=default]#(uptime | awk \"{print \\$3}\"|sed \"s/,//\") #[fg=blue]%a%d-%m-%Y %H:%M:%S'

Однако, вероятно, легче просто поместить команды в сценарий оболочки и вызов это из tmux файл конфигурации:

set -g status-right '#[fg=red,bg=default]#(somecommand.bash) #[fg=blue]%a%d-%m-%Y %H:%M:%S'

Ссылки

8
27.01.2020, 20:17
  • 1
    Вы сокращаете текущее время :) Это должно сделать это: uptime| cut -d" " -f4-|cut -d, -f1. Это - не всегда DD:HH:MM хотя, по крайней мере, в моей системе. –  Paulo Almeida 17.07.2013, 23:00
  • 2
    После того как время работы составляет больше чем один день awk поля изменятся... –  jasonwryan 17.07.2013, 23:12
  • 3
    @PauloAlmeida - благодарит за обратную связь. Я полностью пропустил это 8-). –  slm♦ 17.07.2013, 23:13
  • 4
    @PauloAlmeida - Я изменил свой подход так, чтобы он имел дело с uptime использование awk и sed. Ваш подход работал бы также. Я также адаптировал свой ответ для включения использования решения /proc/uptime вместо этого. –  slm♦ 17.07.2013, 23:23
  • 5
    @user205787 tmux является известно непрощающим кавычек в строке состояния: Вы видите FAQ при выходе из них или просто звоните awk сценарий из внешнего файла... –  jasonwryan 18.07.2013, 01:01

В качестве альтернативы можно использовать uptime -p :

#(uptime -p)

Пример вывода:

up 4 hours, 17 minutes

Я знаю, что это не совсем то, что вы хотели, но закройте

2
27.01.2020, 20:17

Теги

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