i3status에서 "read_file uptime"의 출력 형식 지정

i3status에서 "read_file uptime"의 출력 형식 지정

i3status를 사용하여 시스템 가동 시간을 표시하려고 합니다. 내 파일 i3status.conf에 있는 내용은 다음과 같습니다.

read_file uptime {
    format = "%title: %content"
    path = "/proc/uptime"
}

그러나 스크린샷에 표시된 것처럼 출력은 초 단위로 이루어지므로 분명히 이상적이지는 않습니다.

여기에 이미지 설명을 입력하세요.

예를 들어 다음 형식으로 표시하도록 형식을 지정할 수 있는 방법이 있습니까?

DD:HH:MM:SS

답변1

내 솔루션

1. 아주 아주 짧은 스크립트를 작성하세요

새 파일을 만들고 이름을 바꾼 uptime.sh다음 다음을 복사하세요.

!#/bin/sh

echo "$(uptime -p)" > ~/.config/i3/uptime

uptime -p이것은 내가 선택한 파일에 명령의 출력을 추가하거나 기록합니다 ~/.config/i3/uptime. 이 명령은 uptime -p가동 시간을 표시합니다아름다운체재.

uptime -p의 터미널 출력

올바르게 완료되면 콘텐츠 ~/.config/i3/uptimeup x hours, x minutes.

시도해 볼 수 있는 또 다른 명령은 uptime -s다음과 같습니다.날짜와 시간시스템이 시작된 이후로.

> ![f7c2568a315bba3c2ddccb96c7f9f4ee.png](:/a701cf4ddede44e991b3b70a8aef4d2c)

2. 크론 작업 생성

crontab -e터미널에서 실행한 후 다음 줄을 추가하세요.

* * * * * /home/user/path/to/uptime.sh

그러면 1분마다 스크립트가 실행되므로 가동 시간 콘텐츠가 1분마다 새로 고쳐지거나 덮어쓰여집니다. 이렇게 하면 최신 가동 시간을 얻을 수 있습니다.

스크립트가 1분마다 파일을 실행하거나 새로 고치는 것을 원하지 않는 경우 매시간 파일 새로 고침 * * * * *으로 대체할 수 있습니다 .@hourlyuptime

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

관련 정보