通过php shell_exec调用osascript';行不通
当我遇到这个问题时,我正在尝试使用osascript 这是我的测试:通过php shell_exec调用osascript';行不通,php,shell-exec,osascript,Php,Shell Exec,Osascript,当我遇到这个问题时,我正在尝试使用osascript 这是我的测试: /usr/bin/osascript <<-EOF tell application "System Events" activate display dialog "Hello world" end tell EOF /usr/bin/osascript 你知道为什么这不起作用吗?(这并不重要,但我只是好奇)我怀疑osascript可执行文件需要设置环境变量
/usr/bin/osascript <<-EOF
tell application "System Events"
activate
display dialog "Hello world"
end tell
EOF
/usr/bin/osascript
你知道为什么这不起作用吗?(这并不重要,但我只是好奇)我怀疑osascript可执行文件需要设置环境变量才能正常工作,这就是为什么在控制台上可以正常工作的原因。请参阅以演示如何从PHP设置这些
在我的例子中,它是
HOME
变量,但也可能是其他变量。继续添加它们,直到成功 呃,所以别让我们悬而未决!您得到了什么输出?请尝试shell\u exec(“/path/to/test2>&1”)
将错误输出重定向到标准输出。另外,为了安全起见,如图所示交换到完整路径。46:54:执行错误:发生了类型为-10810的错误。(-10810)
Aha!那么,如果从控制台运行该文件,该文件是否正确执行?/test执行时没有问题。这是我第一次尝试!好。错误10810似乎是因为我要求系统打开弹出窗口,但系统不想打开,除非你从应用程序中打开。我可以使用system()
或shell\u exec()
直接调用不需要GUI元素Right的脚本。是的,我不希望任何弹出对话框的东西在web进程中通过PHP工作。
<?php
$output = shell_exec("./test");
echo "<pre>$output</pre>";
?>