我正在尝试用bash编写一个小脚本。我的目标是我的FritzBox上的电话会将我的电视静音或暂停。
我通过telnet(telnet fritz.box 1012)在我的RaspberryPi上获得了一个电话的信息,如果有来电话,我得到这个输出:
24.08.15 14:03:05; RING; 0; 017mobilephonenumber; 49304myhomenumber; SIP0;
每次相同的部分是主叫号码前的RING。我需要的是一个检查telnet输出的脚本,如果在telnet输出中是一个响铃,而不是在我的情况下执行一个动作,我只需要在内部站点上执行http请求或启动另一个脚本。
这就是我试过的:
#!/bin/bash
#string='echo "My string"'
string=$(telnet –e p fritz.box 1012)
for reqsubstr in 'alt' 'RING';do
if [ -z "${string##*$reqsubstr*}" ] ;then
echo "String '$string' contain substring: '$reqsubstr'."
else
echo "String '$string' don't contain substring: '$reqsubstr'."
fi
done
但我不会将我的telnet会话输出到字符串中。谁可以帮助我?
答案 0 :(得分:0)
这是我的简短结论:
要查看对FritzBox的调用,您只需执行:
telnet fritz.box 1012
在你的终端。
输出应该如下:
24.08.15 14:03:05;RING;0;017mobilephonenumber;49304myhomenumber;SIP0;
我的情况我希望执行一个命令让我的电视静音。 以下是Compile Views in ASP.NET MVC我如何通过Web / RaspberryPi(飞利浦和谐中心)控制我的电视,如果有人感兴趣的话。
要在incomming调用上执行命令,请创建一个名为action.sh
的脚本#!/bin/bash
while true;
do
read logline
for substr in 'alt' '\;RING\;'
do
if [[ "$logline" = *${substr}* ]]; then
echo "Got a match"
#here you can put the command you want to execute on an incoming call
fi
done
done
创建后,使用chmod +x action.sh
使其可执行
之后,您可以使用nc 192.168.1.1 1012 | action.sh
启动脚本
这就是你如何在一个接收电话上执行脚本!
特别感谢tgo !!