Aqui você pode usar awk
para analisar a saída de uptime
para atender às suas necessidades da seguinte forma:
set -g status-right '#[fg=red,bg=default]#(uptime | awk '{print $3}'|sed 's/,//') #[fg=blue]%a%d-%m-%Y %H:%M:%S'
Normalmente, uptime
retorna este tipo de saída:
$ uptime
15:30:24 up 1:59, 4 users, load average: 2.39, 2.08, 2.12
Ao usar awk
, podemos nos livrar de tudo em volta do tempo de atividade.
$ uptime | awk '{print $3}'|sed 's/,//'
2:47
Você também pode usar /proc/uptime
para obter os segundos reais em que o sistema esteve ativo e, em seguida, usar awk
ou perl
para converter os segundos em dias, horas, minutos, etc.
$ 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
Isso mostra os segundos de tempo de atividade em DD: HH: MM: SS.
Você também pode mostrá-los usando o 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
citando o tmux
Como @JasonwRyan mencionou nos comentários, tmux
pode ser notoriamente difícil de citar os comandos corretamente. Veja como você pode citar o exemplo awk
que eu forneci acima.
set -g status-right '#[fg=red,bg=default]#(uptime | awk \"{print \$3}\"|sed \"s/,//\") #[fg=blue]%a%d-%m-%Y %H:%M:%S'
No entanto, é provavelmente mais fácil simplesmente colocar os comandos em um script de shell e chamá-lo de dentro do arquivo tmux
config:
set -g status-right '#[fg=red,bg=default]#(somecommand.bash) #[fg=blue]%a%d-%m-%Y %H:%M:%S'