答案1
我的解决方案
1. 创建一个非常非常短的脚本
只需创建一个新文件并重命名即可uptime.sh
;然后复制这个:
!#/bin/sh
echo "$(uptime -p)" > ~/.config/i3/uptime
这会将命令的输出附加或写入uptime -p
到我选择的文件中~/.config/i3/uptime
。该命令uptime -p
显示正常运行时间漂亮的格式。
如果操作正确,您的内容~/.config/i3/uptime
应该是up x hours, x minutes
.
您可以尝试的另一个命令是,uptime -s
它将显示日期和时间自从你的系统启动以来。
2. 创建一个cron作业
crontab -e
只需在终端中执行然后附加此行:
* * * * * /home/user/path/to/uptime.sh
这将每分钟执行一次脚本,因此每分钟都会刷新或覆盖正常运行时间的内容。这样我们就可以获得最新的正常运行时间。
如果您不希望脚本每分钟执行或刷新文件,您可以将 替换* * * * *
为@hourly
每小时刷新一次uptime
文件。
3.最后,编辑你的i3status
配置文件
像这样:
# uptime
read_file uptime {
color_good = "#ffffff"
format = "%content"
path = "/home/user/.config/i3/uptime"
}
就是这样。重新启动 i3 并希望i3status uptime
出现漂亮的。
答案2
我用这个脚本让它变得更漂亮:
#!/bin/sh
uptime=$(uptime -p)
days=$(echo "$uptime" | grep -oP '\d+(?= day)')
hours=$(echo "$uptime" | grep -oP '\d+(?= hour)')
minutes=$(echo "$uptime" | grep -oP '\d+(?= minute)')
formatted_uptime=""
if [ -n "$days" ]; then
formatted_uptime="${days}d "
fi
formatted_uptime="${formatted_uptime}${hours}h ${minutes}m"
echo "$formatted_uptime" > ~/.config/i3/scripts/uptimedm