1

输出一些统计信息的 Bash 脚本。

while : 
do
      date
      sensors | grep "temp1"
      sensors | grep "Core"
      acpi
      sleep 1
done

可以有一个衬里,喜欢date并使用echo -ne "$(date)\r". 是否可以在不使用的情况下对多条线做同样的事情clear

4

3 回答 3

4

一种选择是在GNU watch下运行它

watch -n 1 'date; sensors | grep "temp1" ;sensors | grep "Core";acpi'            
于 2013-09-05T15:18:51.923 回答
3

你可以这样做:

while true; do    
    date
    sensors | grep "temp1"
    sensors | grep "Core"
    acpi

    sleep 1

    for i in {1..4}; do # clear four lines above
        tput cuu1 # up by one line
        tput el # clear that line
    done
done

使用man tput以获取更多信息。要查看功能列表,请使用man terminfo

编辑:

这是我想出的避免眨眼的技巧:

while true; do
    echo -n "$(date)"; tput el; echo
    echo -n "$(sensors | grep "temp1")"; tput el; echo
    echo -n "$(sensors | grep "Core")"; tput el; echo
    echo -n "$(acpi)"; tput el; echo

    sleep 1
    tput cuu 4
    # tput -S <<< $'cuu1 \n cuu1 \n cuu1 \n cuu1' # that's how you pass several actions to tput, but instaed of cuu1 several times use 'cuu N'
done

当然,这只有在您的命令只输出一行时才有效。

于 2013-09-05T15:15:58.143 回答
3

你可以有:

echo -n $'\e[H\e[2J'

或者

tput clear
于 2013-09-05T15:24:38.710 回答