В первый раз вроде абы как работало. Добавил пару новых строк. Теперь не реагирует. При запуске выдаёт ошибку: votelist.sh: 1: eval: Syntax error: Unterminated quoted string В чём проблема, понять не могу. Подскажите, умные люди.
Вот код:
#!/bin/bash
cd /home/fghost/www/uservoteslist/ #Переход в папку с файлами
name=`find . -type f | wc -l` #Общее кол-во файлов в папке
number=$name
xjo=`shuf -i 1-5 -n 1` #Рандомное число от 1 до 5
while [ $number -gt 0 ] #Выполнять цикл пока number больше 0
do
data=`cat /home/fghost/www/uservoteslist/$number.txt` #Получаем переменные из файла
for i in $data; do eval $i; done #Получаем переменные из файла
if [ "$completed" = "" ]; then #Если переменной не существует то выполняем
if [ $statusgift -eq 1 ]; then #Если значение statusgift = 1 тогда
#-------------------------------------
#Подбираем функцию под рандомное значение
if [ $xjo -eq 1 ]; then
screen -x sandbox -X stuff 'ulx tempadduser $username gift 1440 user^M'
else
return
fi
if [ $xjo -eq 2 ]; then
screen -x sandbox -X stuff 'ulx tempadduser $username gift2 1440 user^M'
else
return
fi
if [ $xjo -eq 3 ]; then
screen -x sandbox -X stuff 'ulx tempadduser $username gift3 1440 user^M'
else
return
fi
if [ $xjo -eq 4 ]; then
screen -x sandbox -X stuff 'ulx tempadduser $username gift4 1440 user^M'
else
return
fi
if [ $xjo -eq 5 ]; then
screen -x sandbox -X stuff 'ulx tempadduser $username gift5 1440 user^M'
else
return
fi
echo "completed='yes'" >>/home/fghost/www/uservoteslist/$number.txt #Ставим статус 'завершено'
number=$(($number-1)) #Вычитаем от самого большого значения 1 и переходим к проверке нового файла
fi
else return
fi
done
Суть скрипта в том, что-бы выдавать призовые группы на сервере. Тут происходит подсчёт всех файлов в папке и сравнение их переменных. Пример содержимого ещё не завершённого файла:
username="Filo"
statusgift="1"
username="Filo"
statusgift="1"
completed="yes"
Вроде всё что только можно рассказал, в принципе основная проблем в этом - votelist.sh: 1: eval: Syntax error: Unterminated quoted string