如何在Unraid脚本中提取smartctl输出的RAW_VALUE值
在Unraid中提取硬盘SMART传感器RAW_VALUE的脚本实现
要从smartctl的输出中提取Airflow_Temperature_Cel对应的RAW_VALUE并赋值给变量,你可以用以下几种可靠的方法:
方法1:使用awk(推荐)
awk可以轻松处理空格分隔的字段,$NF表示取当前行的最后一个字段(正好对应RAW_VALUE):
# 赋值给变量AIRFLOW_TEMP AIRFLOW_TEMP=$(smartctl -A /dev/sdg | grep Airflow_Temperature_Cel | awk '{print $NF}')
如果担心存在多行匹配结果,可添加grep -m 1只保留第一行:
AIRFLOW_TEMP=$(smartctl -A /dev/sdg | grep -m 1 Airflow_Temperature_Cel | awk '{print $NF}')
方法2:使用sed
通过正则匹配行尾的数字部分来提取RAW_VALUE:
AIRFLOW_TEMP=$(smartctl -A /dev/sdg | grep Airflow_Temperature_Cel | sed -E 's/.* ([0-9]+)$/\1/')
验证结果
赋值完成后,可通过以下命令确认变量是否正确获取到数值:
echo $AIRFLOW_TEMP
执行后应该输出目标RAW_VALUE(比如你提到的45)。
内容的提问来源于stack exchange,提问作者XxnumbxX
相关产品推荐
相关产品推荐

