从终端调用时,iMac上的脚本与Raspberry pi

时间:2017-02-24 22:33:34

标签: python macos raspberry-pi itunes osascript

我的iMac(Yosemite)上有一些脚本,它们从终端调用时可以正常工作,但在我的Raspberry pi3上从Python 2.7程序调用时会有不同的结果。

这是一个例子: iMac上的脚本 - 此脚本暂停iTunes;说一句话;然后重新启动iTunes。

saysomething.sh

#!/bin/bash
echo -e "Content-type: text/html\n"

PHRASE=`echo "$QUERY_STRING" | sed -n 's/^.*phrase=\([^&]*\).*$/\1/p' | sed     "s/+/ /g" | sed "s/%20/ /g"`

cat << junk
<html>
<head>
<title>
saying
</title>
</head>
<body>
junk
#-----------------------

osascript -e 'tell application "iTunes" to playpause'
osascript -e 'tell application "iTunes" to delay 1'
say "Testing"
#say $PHRASE    (line is commented because when run from terminal the param is not passed)
osascript -e 'tell application "iTunes" to delay 2'
osascript -e 'tell application "iTunes" to playpause'

#-----------------------
cat << junk
</body>
</html>
junk

当我从iMac上的终端会话中运行它时,它按预期工作,音乐播放停止,单词“Testing”为“say”,然后音乐重新开始。

RPI上的Python脚本 - 这个脚本在iMac上执行脚本,我原本认为,它的工作方式与终端相同......但它没有!

MakeThe_iMac_Say.py

# works with Python 2.7.3

# this script is to have the iMac 'say' the text

#***********************************************

#bring in the required libraries
import urllib2
import os
import string

#***********************************************************

text1 = "hello this is a test"

address = "http://10.0.1.11"

url = address+"/cgi-bin/saysomething.sh?phrase="+text1
response = urllib2.urlopen(url).read()

当我执行此脚本时,从RPI开始,音乐不会暂停,但“测试”一词是“说”(在音乐上!)。所以我知道iMac上的脚本实际上正在运行,但某些命令被忽略了!请注意,iMac脚本当前会忽略'text1'参数。

在从RPI调用时,如何让iMac上的脚本执行applescript操作?

修改 Apache服务器错误日志具有以下错误:

AH01215:执行错误:发生了-10810类型的错误。 (-10810):/ Library / WebServer / CGI-Executables /saysomethinghttp9.sh

我找不到任何可以解释此错误的内容!

0 个答案:

没有答案