하드 드라이브 온도에 따라 팬을 제어하기 위해 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')