Добрый день, не могу разобраться почему при запуске цикла с последующим запуском игнорируется запуск переменной $dd_ssd и скрипт просто считывает значение предыдущей переменной?
Пример: Запускаю скрипт, в условие проверяется скорость диска. Далее когда новый цикл запускается в условие предыдущее значение по прежнему почему-то и команда что в переменной $dd_ssd не выполняется
#!/bin/bash
service supervisord stop
service mysql stop
date_ssd=$(date '+%d-%m-%Y_%H-%M-%S')
summa=0
dd_ssd=`sync; dd if=/dev/zero of=/tmp/tmp bs=512k count=20k |& awk '/скопировано/ {print $8 " " $9}'`
for ((;;))
do
sleep 10
summa=$(($summa+10))
echo "Записано на диск $summa ГБ" >> result.log
#write_ssd=$($dd_ssd)
#$write_ssd
if [[ $dd_ssd = *"MB/c"* ]]; then
echo "$dd_ssd" > test_ssd.log
echo "===============START TEST $date_ssd=================" >> result.log
echo "Записываем 10 гигабайт!. WRITE..."
echo "Скорость в мегабайтах" >> result.log
awk_ssd=`awk '{print $1}' test_ssd.log`
echo "$awk_ssd"
if [[ $awk_ssd -ge "70" ]]; then
echo "Скорость выше 70 мб/сек = $awk_ssd" >> result.log
echo "Состояние диска в % $(awk "BEGIN { print 100 - ($(($(smartctl -x /dev/sda | awk '/241 Total_LBAs_Written/ {print $8}') * 32 / 1024 / 1024 ))*0.96)}")" >> result.log
else echo "Скорость ниже 70 мб/сек ERROR!!!" >> result.log
fi
else
echo "Скорость диска больше 1 Гбит/сек!" >> result.log
echo "Состояние диска в % $(awk "BEGIN { print 100 - ($(($(smartctl -x /dev/sda | awk '/241 Total_LBAs_Written/ {print $8}') * 32 / 1024 / 1024 ))*0.96)}")" >> result.log
fi
echo "=============END TEST $date_ssd========" >> result.log
done
echo "FINISH. Скорость SSD менее 70 мбит/сек!" >> result.log
exit 0