ハードドライブの温度に応じてファンを制御するためにbashスクリプトを実行しようとしています。
スクリプトから「ARRAY_FAN=/sys/class/hwmon/hwmon4/pwm6」にファンを追加できます。
したがって、スクリプトがARRAY_FANのrmpを変更するときに、実際にすべてのファン(pwm5、pwm6、pwm7、およびpwm8)のrpmを変更するようにARRAY_FAN変数に複数のファンを追加する方法を知りたいです。
/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の場合(一度に配列を埋める)効率的な方法は、コマンドmapfile
または次のような正確な同義語を使用することです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の投稿です。
Bash バージョンが 4.0 より前の場合は、mapfile
次の非ベースソリューションを表示します。
IFS=$'\n' read -r -d $'\0' -a arr < <(command && printf '\0')