Tại đây bạn có thể sử dụng awkđể phân tích đầu ra uptimecho 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 uptimetrả 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 awkchú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 awkhoặ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, tmuxcó 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 awkví 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 tmuxtệ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.