У меня была задание в моем университетеУстановленное значение var с ловушкой
Помогло ли мне?
мне нужно изменить метод использования ловушки и добавить или перемножить, используя хвост -n 0 -f
мой код генератора:
rm info.txt
touch info.txt && chmod u+x info.txt
while true;
do
read line
case $line in
"quit")
echo $line >> info.txt
exit
;;
"+")
kill -USR1 $(cat .pid)
;;
"*")
kill -USR2 $(cat .pid)
;;
*)
echo $line >> info.txt
;;
esac
done
мой код hundler:
echo $$ > .pid
ME="+";
value=1;
multipl(){
ME="*"
}
plus(){
ME="+"
}
trap 'multipl' USR1
trap 'plus' USR2
(tail -n 0 -f info.txt) | while true
do
read line
case $line in
"quit")
echo "quit"
killall tail
exit
;;
*)
if (echo "$line" | grep -Eq "^-?[0-9]+$")
then
if [[ "$ME" == "+" ]]
then
let value=$value+$line
fi
if [[ "$ME" == "*" ]]
then
let value=$value*$line
fi
echo $value
else
echo "error"
killall tail
exit
fi
esac
sleep 1
done
, но мой множитель() {ME = "*"} не работает
у вас есть ave любые решения для этого?
Возможно, что символ char ('*') будет расширен. Проверьте свою простую/двойную кавычку. И используйте 'set -x', чтобы узнать, что произошло при запуске скрипта. – jml