sh/bash/dash/ksh/zsh等Shell脚本
-
allarem
- 帖子: 1025
- 注册时间: 2008-05-31 17:27
- 来自: SUES
-
联系:
#1
帖子
由 allarem » 2008-10-03 18:09
搞了一个下午了,正则还是很生疏……:em20
把每个参数都分离出来,去掉+ 和单位
代码: 全选
k8temp-pci-00c3
Adapter: PCI adapter
Core0 Temp: +27.0°C
Core0 Temp: +26.0°C
Core1 Temp: +26.0°C
Core1 Temp: +28.0°C
f71882fg-isa-0a00
Adapter: ISA adapter
3.3V: +3.44 V
Vcore: +1.26 V (max = +2.04 V)
Vdimm: +2.03 V
Vchip: +1.90 V
+5V: +5.00 V
12V: +13.96 V
5VSB: +4.66 V
3VSB: +3.42 V
Battery: +3.18 V
CPU: 3296 RPM
System: 0 RPM ALARM
Power: 0 RPM ALARM
Aux: 0 RPM ALARM
CPU: +44.0°C (high = +70.0°C, hyst = +66.0°C)
(crit = +70.0°C, hyst = +66.0°C) sensor = transistor
System: +40.0°C (high = +85.0°C, hyst = +81.0°C)
(crit = +100.0°C, hyst = +96.0°C) sensor = transistor
先谢谢各位了
-
allarem
- 帖子: 1025
- 注册时间: 2008-05-31 17:27
- 来自: SUES
-
联系:
#2
帖子
由 allarem » 2008-10-03 18:27

贪心点,其实我是想把参数输出到SCREENLETS的OUTPUT中,SCREENLETS里的SYSMONITOR很不好看,而且我想要判断温度是否正常,不正常报警(通过\a)而且显示出来(正常绿色,不正常红色)
人比较笨,折腾了一下午琢磨出的脚本基本上达到了表格规范,就是不能分离参数……
代码: 全选
cputemp0=`sensors|grep Core0|awk '{print $3}'`
fan=`sensors|grep CPU|awk '{print $2}'`
system=`sensors|grep System|awk '{print $2}'`
export cputemp0
export fan
export system
core0=`echo $cputemp0|awk '{print $0}'`
core1=`echo $cputemp0|awk '{print $1}'`
export core0
export core1
echo 'CPU参数:'
echo '核心温度 外壳温度'
echo '主板参数:'
echo 'CPU风扇 CPU温度'
echo '机箱温度:'
-
allarem
- 帖子: 1025
- 注册时间: 2008-05-31 17:27
- 来自: SUES
-
联系:
#4
帖子
由 allarem » 2008-10-03 18:42
…………竟然没发现里面带的网址…………

-
xiooli
- 帖子: 6956
- 注册时间: 2007-11-19 21:51
- 来自: 成都
-
联系:
#5
帖子
由 xiooli » 2008-10-03 18:45
说说你要哪些吧?还有要什么样的格式输出呢?
-
allarem
- 帖子: 1025
- 注册时间: 2008-05-31 17:27
- 来自: SUES
-
联系:
#6
帖子
由 allarem » 2008-10-05 13:48
xiooli 写了:说说你要哪些吧?还有要什么样的格式输出呢?
脚本输出数值到系统全局变量就好.例如cpu0t,cpu1t,这样的数值.
最好的就像我前面说的一样可以自动判断温度的正常与否.
= -||当然先要解决我的数值输出
(感叹下正则的非人类,作者真是猛.......)
-
allarem
- 帖子: 1025
- 注册时间: 2008-05-31 17:27
- 来自: SUES
-
联系:
#7
帖子
由 allarem » 2008-10-11 16:49
终于搞好了数据,但是还有个问题:怎么declare -i 了都没办法比较两个数字的大小?
代码: 全选
#!/bin/bash
#for output beta
#get data
cpu0_temp=`sensors|grep 'Core0'|awk '{print $3}'|sed '1d'|sed 's/[+°C]//g'`
cpu1_temp=`sensors|grep 'Core1'|awk '{print $3}'|sed '1d'|sed 's/[+°C]//g'`
fan_speed=`sensors|grep 'CPU:'|grep -v '+'|awk '{print $2}' `
system=` sensors|grep System|awk '{print $2}'|sed '1d'|sed 's/[+°C]//g'`
cpu0_state=OK
cpu1_state=OK
fan_state=OK
system_state=OK
declare -i safe=55
declare -i cpu0_temp cpu1_temp fan_speed system
if [ "$cpu0_temp" > "$safe" ];then
cpu0_state="Dangerous!"
fi
if [ "$cpu1_temp" > "$safe" ];then
cpu1_state="Dangerous!"
fi
if [ "$system" > "$safe" ];then
system_state="Dangerous!"
fi
if [ "$fan_speed" == "0" ];then
fan_state="Dangerous!"
fi
#print them
echo 'CPU0温度:'$cpu0_temp'°C '$cpu0_state
echo 'CPU1温度:'$cpu1_temp'°C '$cpu1_state
echo 'CPU风扇:'$fan_speed' RPM '$fan_state
echo '机箱温度:'$system'°C '$system_state
-
附件
-

-
janky
- 帖子: 11
- 注册时间: 2007-07-20 20:58
- 来自: 上海
#8
帖子
由 janky » 2008-10-14 21:06
请问怎样才能修改 Output 的程序源文件啊? 是/usr/share/screenlets/Output/ 下面的Outputscreenlets.pyc 还是 Outputscreenlet.py 文件啊?
我想将mlrc(歌词脚本)嵌入 Output 中,把这个Output变成一个漂亮的歌词输出端。
一开始我想直接更改Output的选项但是,每次更改后都是Output死掉,不知道什么原因。
-
allarem
- 帖子: 1025
- 注册时间: 2008-05-31 17:27
- 来自: SUES
-
联系:
#9
帖子
由 allarem » 2008-10-16 20:56
janky 写了:请问怎样才能修改 Output 的程序源文件啊? 是/usr/share/screenlets/Output/ 下面的Outputscreenlets.pyc 还是 Outputscreenlet.py 文件啊?
我想将mlrc(歌词脚本)嵌入 Output 中,把这个Output变成一个漂亮的歌词输出端。
一开始我想直接更改Output的选项但是,每次更改后都是Output死掉,不知道什么原因。
貌似不支持实时显示的东西……例如TOP