首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在php中使用"xte命令“运行bash文件

在php中使用"xte命令“运行bash文件
EN

Stack Overflow用户
提问于 2016-02-28 19:17:14
回答 1查看 1.2K关注 0票数 0

对于我的项目,我需要通过php运行位于ubuntu服务器上的bash脚本。

这是我的sh脚本: test1.sh

代码语言:javascript
复制
#!/bin/bash
xte 'keydown Control_L' 'keydown Alt_L' 'key l' 'keyup Alt_L' 'keyup Control_L' 

我的php文件是: bashTest1.php

代码语言:javascript
复制
<?php
$message = shell_exec("bash test1.sh 2>&1");
echo $message;
?>

但是,当我在浏览器中打开php页面时,会得到以下错误:

代码语言:javascript
复制
Unable to open display 'default'

'test1.sh‘中的'xte’命令基本上实际上执行Ctlr+Alt+L操作。我检查了“test1.sh”的文件权限。没事的。我已经在终端上运行bash文件,它正在工作。我还在同一个'test1.sh‘文件中选中了'ls’命令,它在浏览器中显示了该目录中的所有文件。请您帮助我在我的php脚本中运行这个命令。

提前谢谢大家!

最后我解决了这个问题。在Ubuntu中,每个用户都有一个显示。首先,在bash文件中,我必须指定执行命令所需的显示。最后,我需要授予php用户执行命令的权限。最后,bash文件如下所示:

代码语言:javascript
复制
#!/bin/bash
export DISPLAY=":0"
xhost +
xte 'keydown Control_L' 'keydown Alt_L' 'key l' 'keyup Alt_L' 'keyup Control_L'

注意:请记住,首先检查用户的显示。因为不同的用户会得到不同的显示。您可以通过终端中的此命令检查用户的显示。

代码语言:javascript
复制
who
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-03-04 02:03:44

你错过了两件事:

  1. X显示的地址需要传递给带有xte参数的-x,或者设置为DISPLAY环境变量。
  2. 需要使用X显示的神奇曲奇设置XAUTHORITY环境变量。

This answer有更多的信息。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35687082

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档