好吧,我有一个8 HDD的塔,我正在尝试制作一个脚本,该脚本将循环通过它们,并为每个HDD的结果(来自HDPARM的信息)制作一个文本文件有自己的文件夹。我现在如何循环此脚本以进行SDC->/bay2,SDD->/bay3,SDE->/bay4 ect ect
这现在正在为一个HDD工作,只需为另一个7
循环它if [ -c /dev/sdb ];
then
sudo hdparm -I /dev/sdb >> /Bay1/sdb.txt
fi
这依赖于匹配的 /dev/sdX
和命令 seq
生成1..8:
hd=( dummy /dev/sd[b-z] )
for i in `seq 1 8`
do
sudo hdparm -I ${hd[$i]} >> /Bay$i/`basename ${hd[$i]}`.txt
done
hd
数组中的dummy
条目只是一个基于一个基于的。
您可以将其重组为在/dev/sd[b-z]
上操作(让其匹配任何数字,不期望8),并且像 @Sampson-Chen的答案一样,用for sd in /dev/sd[b-z] ...
# start with lower case b, so ascii starts at 98 instead of 65
ascii=66
index=1
total=8
while [[ $total -ge $index ]]
do
letter=$(echo "$ascii" | awk '{ printf("%c",$0); }')
if [ -c /dev/sd$letter ];
then
sudo hdparm -I /dev/sd$letter >> /Bay$index/sd$letter.txt
fi
index=$((index+1))
ascii=$((ascii+1))
done
编辑:修复了总案例字母的总/索引错位和偏移(98)
刚刚使用touch
测试了此文件,以在Linux上创建文件。