Доброе время суток,
Стоит Ubuntu 16.04.
Есть такой скрипт
#!/bin/bash
#export DISPLAY=:0
NUM_CARDS=2
NS="/usr/bin/nvidia-settings"
while true
do
for ((i=0; i<$NUM_CARDS;i++))
{
GPU_TEMP='nvidia-smi -i $i --query-gpu=temperature.gpu --format=csv,noheader'
FAN_SPEED='nvidia-smi -i $i --query-gpu=fan.speed --format=csv,noheader,nounits'
if (($GPU_TEMP > 50)); then
$NS -a [gpu:$i]/GPUFanControlState=1 -a [fan:$i]/GPUTargetFanSpeed=100 > /dev/null 2>&1
fi
if (($GPU_TEMP < 50)); then
(($GPU_TEMP!=$FAN_SPEED)) && $NS -a [gpu:$i]/GPUFanControlState=1 -a [fan:$i]/GPUTargetFanSpeed=$GPU_TEMP > /dev/null 2>&1
fi
}
sleep 5
done
но при его выполнении, летит ошибка:
./fans.sh: line 13: ((: nvidia-smi -i $i --query-gpu=temperature.gpu --format=csv,noheader > 50: syntax error: invalid arithmetic operator (error token is "$i --query-gpu=temperature.gpu --format=csv,noheader > 50")
./fans.sh: line 17: ((: nvidia-smi -i $i --query-gpu=temperature.gpu --format=csv,noheader < 50: syntax error: invalid arithmetic operator (error token is "$i --query-gpu=temperature.gpu --format=csv,noheader < 50")
Подозрение на то, что в переменную «
GPU_TEMP» - не записывается значение, а при выполнении, просто в данную переменную пишется значение "nvidia-smi -i $i --query-gpu=temperature.gpu --format=csv,noheader".
Или в "-i $i" - не там поставил...
Или просто что-то не доустановлено.
У кого какие мысли будут?
Заранее спасибо за ответ.
P.S.
- Со скриптами работаю второй день.
- но команда: "~$ nvidia-smi --query-gpu=temperature.gpu --format=csv,noheader" - выполняется.
1.4. Листинги и содержимое текстовых файлов следует добавлять в сообщение с помощью тегов [spoiler]...[/spoiler] или [code]...[/code], либо прикреплять к сообщению в виде отдельного файла.
--БТР