以下是检查磁盘 SMART 状态的每日报告脚本的片段。
但是,我希望将 $STATUS 的全部值打印在“else”子句中,但是现在它只将其截断为第一个单词($3)。
我该如何克服呢?
echo "SMART STATUS" >> $LOGS
echo "--------------------------" >> $LOGS
DISKS=( 0 1 2 3 4 5 6 7 )
for i in "${DISKS[@]}" ;
do
STATUS=`diskutil info /dev/disk$i | grep SMART | awk '{ print $3 }'`
if [ "$STATUS" = "Verified" ]; then
echo "SMART STATUS OK FOR DISK $i" >> $LOGS
else
echo "** SMART STATUS $STATUS FOR DISK $i **" >> $LOGS
fi
done
echo " " >> $LOGS
echo " " >> $LOGS
例如:
$ diskutil info /dev/disk8 | grep SMART
SMART Status: Not Supported
$ diskutil info /dev/disk2 | grep SMART
SMART Status: Verified
理想情况下,对于像 disk8 这样的情况,脚本会回显“不支持”。我认为“SMART Status:”的值可能会在一个词和几个词之间变化。我没有在手册页上看到所有可能性,所以我对此没有明确的答案。