gpt4 book ai didi

php - 在 php 中运行带有 "xte command"的 bash 文件

转载 作者:太空宇宙 更新时间:2023-11-04 12:56:08 25 4
gpt4 key购买 nike

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

这是我的 sh 脚本:test1.sh

#!/bin/bash
xte 'keydown Control_L' 'keydown Alt_L' 'key l' 'keyup Alt_L' 'keyup Control_L'

我的 php 文件是:bashTest1.php

<?php
$message = shell_exec("bash test1.sh 2>&1");
echo $message;
?>

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

Unable to open display 'default'

“test1.sh”中的“xte”命令基本上执行 Ctlr+Alt+L 虚拟操作。我已经检查了“test1.sh”的文件权限。没关系。我已经在它正在运行的终端中运行了 bash 文件。我还在同一个“test1.sh”文件中检查了“ls”命令,它在我的浏览器中显示了该目录中的所有文件。你能帮我在我的 php 脚本中运行这个命令吗?

提前谢谢大家!

我终于解决了这个问题。在 Ubuntu 中,每个用户都有一个 DISPLAY。在我的 bash 文件中,我首先必须指定我需要在哪个 DISPLAY 上执行命令。最后我需要授予 php 用户执行命令的权限。最后我的 bash 文件看起来像这样:

#!/bin/bash
export DISPLAY=":0"
xhost +
xte 'keydown Control_L' 'keydown Alt_L' 'key l' 'keyup Alt_L' 'keyup Control_L'

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

who

最佳答案

你错过了两件事:

  1. X 显示的地址需要通过-x 参数传递给xte,或者设置为DISPLAY 环境变量.
  2. XAUTHORITY 环境变量需要使用您的 X 显示器的魔术 cookie 进行设置。

This answer有更多信息。

关于php - 在 php 中运行带有 "xte command"的 bash 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35687082/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com