我正在尝试运行一个 bash 脚本来根据硬盘温度控制我的风扇。
在脚本中,我可以将风扇添加到“ARRAY_FAN=/sys/class/hwmon/hwmon4/pwm6”
所以我想知道如何向 ARRAY_FAN 变量添加多个风扇,这样当脚本更改 ARRAY_FAN 上的 rmp 时,它实际上会更改所有风扇(pwm5、pwm6、pwm7 和 pwm8)上的 rpm
我可以将 /sys/class/hwmon/hwmon4/pwm5 作为单独变量添加到 pwm8,然后将它们添加到 ARRAY_FAN,或者将多行添加到 ARRAY_FAN 值吗?
这是我正在尝试使用的脚本 https://github.com/kmwoley/unRAID-Tools/blob/master/unraid_array_fan.sh
答案1
arr
对于 Bash 版本 >= 4.0,您会发现一种有效的方法(一次填充数组)是使用 commandmapfile
或其确切同义词readarray
,如下所示:
mapfile -t arr < <(command)
$ declare -p arr
使用 bash 手册中的所有可用选项和标志检查数组内容。
例如:
$ mapfile -t arr < <(seq 1 4)
$ declare -p arr
declare -a arr=([0]="1" [1]="2" [2]="3" [3]="4")
如果您的命令输出包含通配符(例如*
.有其他方法可以做到这一点这里,@gniourf_gniourf 的 SO 帖子。
如果您的 Bash 版本早于 4.0,请指出不基于 的解决方案mapfile
,如下所示:
IFS=$'\n' read -r -d $'\0' -a arr < <(command && printf '\0')