我在大學任務將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
但我multipl(){ME =「*」}不工作
你h是否爲此提供任何解決方案?
星號('*')字符可能會被展開。檢查你的簡單/雙引號。並使用'set -x'來查看運行腳本時發生了什麼。 – jml