Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Macos 脚本改进建议_Macos_Bash_Shell - Fatal编程技术网

Macos 脚本改进建议

Macos 脚本改进建议,macos,bash,shell,Macos,Bash,Shell,以下脚本用于检查Macintosh上任何驱动器的智能状态 它工作得很好,但我想知道是否有一种更优雅的方法,首先列出,然后循环使用diskutil list | grep/dev/中的所有结果,因为该命令将始终列出所有连接的设备,从而使脚本可移植 有没有更好的方法不用先输出到$DISKLIST日志文件?其他建议也欢迎 # Check SMART status DISKLIST=`mktemp -t DISK-XXXXX.log` diskutil list | grep /dev/ >

以下脚本用于检查Macintosh上任何驱动器的智能状态

它工作得很好,但我想知道是否有一种更优雅的方法,首先列出,然后循环使用
diskutil list | grep/dev/
中的所有结果,因为该命令将始终列出所有连接的设备,从而使脚本可移植

有没有更好的方法不用先输出到$DISKLIST日志文件?其他建议也欢迎

# Check SMART status

DISKLIST=`mktemp -t DISK-XXXXX.log`

diskutil list | grep /dev/ > $DISKLIST

for i in  `cat $DISKLIST` ;

do

STATUS=$(diskutil info $i | awk -F': *' '/SMART/{print $2}')

if [ "$STATUS" = "Verified" ]; then
        echo "SMART Status OK for disk $i" 
else

        echo "** SMART Status $STATUS for disk $i **" 
fi

done

rm $DISKLIST
例如,以下是脚本中键命令的典型结果:

$ diskutil list | grep /dev/
/dev/disk0
/dev/disk1
/dev/disk2
/dev/disk3
/dev/disk4
/dev/disk5
/dev/disk6
/dev/disk7
/dev/disk8

可以使用命令替换,以便:

for i in $(diskutil list | grep /dev/)
do 
....

命令的输出直接在for循环中替换,不需要DISKLIST文件。更多信息,请访问codereview网站。我们在这里帮助解决问题,而不是批评/改进代码。太棒了,谢谢!我很高兴我问了。