Raspberry Pi: температура CPU в screen
Появилась идея выводить температуру CPU Raspberry Pi в нижней строке screen. Сейчас содержимое файла .screenrc следующее:
#----------------------------------------------------------------------------
# ~/.screenrc: executed by screen for user settings
# $Revision: 2.10 (CentOS Edition by Wakko Warner) $
# $Comment: Any comments please send to [email protected] $
#----------------------------------------------------------------------------
caption always "%{= 45}%{+b w}Screen: %n | %h %=%t %c"
hardstatus alwayslastline "%-Lw%{= BW}%50>%n%f* %t%{-}%+Lw%<"
# hardstatus string "[screen %n%?: %t%?] %h"
defshell -bash
shell -$SHELL
# VARIABLES
# ===============================================================
# Automatically detach on hangup.
autodetach on # default: on
# Don't display the copyright page
startup_message off # default: on
# Affects the copying of text regions
crlf off # default: off
# Change default scrollback value for new windows
defscrollback 1000 # default: 100
# Define the time that all windows monitored for silence should
# wait before displaying a message. Default 30 seconds.
silencewait 15 # default: 30
# UTF-8 support
defutf8 on
# PuTTY tweaks
termcapinfo xterm* ti@:te@
termcapinfo xterm ti@:te@
# STARTUP SCREENS
# ===============================================================
# Uncomment one/some following lines to automatically let
# SCREEN start some programs in the given window numbers:
# screen -t IRC 0 irssi
# screen -t EDIT 1 vim
# screen -t GOOGLE 2 links http://www.google.com
# screen -t NEWS 3 slrn
# screen -t WWW 4 links http://rt.com
# screen -t HTOP 0 htop
# screen -t BASH 1
# screen -t F3 2
# screen -t F4 3
# screen -t F5 4
# screen -t F6 5
# screen -t F7 6
# screen -t F8 7
# screen -t F9 8
# screen -t F10 9
# select 1
Как я понимаю, в строку hardstatus alwayslastline нужно добавить vcgencmd measure_temp. Но выводиться сама команда, а не её результат.
Ответы (1 шт):
Как я понимаю, в строку hardstatus alwayslastline нужно добавить vcgencmd measure_temp.
нет, в эту строку надо вставить отсылку к backtick-команде. синтаксис отсылки (знак процента и знак обратной кавычки — часть синтаксиса):
%идентификатор`
синтаксис backtick-команды:
backtick идентификатор lifespan autorefresh команда с аргументами ...
идентификатор— просто уникальное произвольное число, на которое можно сослаться внутри строкиhardstatus. например,0. или12345.lifespan(время жизни) — время (в секундах), в течение которого результат команды считается действительным. после его истечения команда будет выполнена вновь.autorefresh(авто-обновление) — интервал (в секундах), через который обновляется отображаемое содержимоеhardstatus(ну иcaption, где тоже можно использовать отсылку к backtick-команде).имеет ли смысл указывать в
lifespanиautorefreshразные значения, я так и не понял. думаю, по совету отсюда, можно использовать одно и то же значение.
пример:
backtick 222 1 1 date -u
hardstatus alwayslastline 'время в utc: %222` и ещё какая-нибудь информация'
здесь описан запуск команды date -u каждую секунду. отображаться её вывод будет вместо вот этих символов:
%222`
обратите внимание, что в строке hardstatus сразу после идентификатора backtick-команды должна стоять обратная кавычка (по-английски "backtick", что как бы намекает на происхождение названия описываемой команды). такой вот синтаксис, чтобы gnu/screen при парсинге конф. файла (точнее, содержимого строки hardstatus/caption) мог понять, где именно заканчивается идентификатор-отсылка к соответствующей backtick-команде (их, кстати, можно описать и несколько в одном конф. файле, главное, чтобы идентификаторы были уникальными).