Tại đây bạn có thể sử dụng awk
để phân tích đầu ra uptime
cho phù hợp với nhu cầu của bạn như thế này:
set -g status-right '#[fg=red,bg=default]#(uptime | awk '{print $3}'|sed 's/,//') #[fg=blue]%a%d-%m-%Y %H:%M:%S'
Thông thường uptime
trả về loại đầu ra này:
$ uptime
15:30:24 up 1:59, 4 users, load average: 2.39, 2.08, 2.12
Bằng cách sử dụng awk
chúng ta có thể thoát khỏi mọi thứ xung quanh thời gian hoạt động.
$ uptime | awk '{print $3}'|sed 's/,//'
2:47
Bạn cũng có thể sử dụng /proc/uptime
để lấy số giây thực tế mà hệ thống đã hoạt động và sau đó sử dụng awk
hoặc perl
để chuyển đổi giây thành ngày, giờ, phút, v.v.
$ 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
Điều này cho thấy số giây thời gian hoạt động trong DD: HH: MM: SS.
Bạn cũng có thể hiển thị chúng bằng 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 trích dẫn?
Như @JasonwRyan đã đề cập trong các bình luận, tmux
có thể rất khó để trích dẫn các lệnh vừa phải. Đây là cách bạn có thể trích dẫn awk
ví dụ mà tôi đã cung cấp ở trên.
set -g status-right '#[fg=red,bg=default]#(uptime | awk \"{print \\$3}\"|sed \"s/,//\") #[fg=blue]%a%d-%m-%Y %H:%M:%S'
Tuy nhiên, có thể dễ dàng hơn khi đặt các lệnh trong tập lệnh shell và gọi lệnh đó từ trong tmux
tệp cấu hình:
set -g status-right '#[fg=red,bg=default]#(somecommand.bash) #[fg=blue]%a%d-%m-%Y %H:%M:%S'
Người giới thiệu
uptime| cut -d" " -f4-|cut -d, -f1
. Không phải lúc nào cũng là DD: HH: MM, ít nhất là trên hệ thống của tôi.