Я пытался записать сценарий оболочки в среде Unix, и мое требование - то, если мое условие удовлетворено затем, что это должно записать, сколько раз удовлетворено мое условие
например, в ниже кода, когда значение VAR равняется 1 затем, оно должно записать, сколько раз значение равняется 1, и продолжайте записывать число в некотором определенном файле в определенном пути
VAR = /sys/ccc/sss
if [ "$VAR" -eq 1 ];
then /*need logic*/
fi
быть ясным, если работал выше логики 100 раз и моего условия, верно в течение 95 раз затем, как записать логику, таким образом, что код должен создать переменную, названную condition_yes, который имеет номер 95 в нем в конце и переменной, названной condition_no, который имеет номер 5 в init, Любая идея или подсказка ценятся
Требование в ореховой скорлупе, которая - Мое требование, когда я получаю действительный сигнал от внешнего источника переменная в моем sysfs, расположенном на моем экю в/sys/bus/drive/prd, будет установлено на 1 и если не это будет установлено на 0, таким образом, мое требование будет мной, continuosly отправляют сигнал от внешнего источника до моего экю в течение приблизительно 1 часа, и в конце я хочу общее количество того, сколько раз мой сигнал хорош, и varable выше установлено на 1
Если значение 1 или 0 присвоено файлу /sys/bus/drive/prd
, можно считать его с 'кошкой' и присвоить переменную ему.
var=$(cat /sys/bus/drive/prd)
и затем считайте нули и
...
if [ "$var" == "1" ]
then
good=$((good+1))
elif [ "$var" == "0" ]
bad=$((bad+1))
else
echo "unexpected value"
fi
...
Вы ничего не объяснили о сигнале, таким образом, я не пишу кода об этом.
Вместо этого я сделал маленький демонстрационный сценарий оболочки, который может помочь Вам видеть, как сделать некоторое время цикл для подсчета 'хороших' и 'плохих' нажатий клавиш и как записать результат, когда измерение закончено.
#!/bin/bash
echo "siganl: as demo, let a key-stroke be the signal"
echo "value: as demo, a digit key is good=1 other keys are bad=0"
echo "quit the loop with 'q'"
good=0
bad=0
re='^[0-9]+$'
while true
do
read -sn1 ans
if [[ "$ans" == "q" ]]
then
echo ""
echo "good=$good"
echo "bad=$bad"
exit
elif [[ "$ans" =~ $re ]]
then
echo -n '1'
good=$((good+1))
else
echo -n '0'
bad=$((bad+1))
fi
done
Удача с Вашим собственным сценарием оболочки :-)