如何通过 url 调用脚本后在用户机器上运行 shell 脚本


How to run a shell script on a user machine after calling the script through url

我有一个名为xyz.sh的脚本,它使用zenity.执行时会为用户提供一个选择菜单.问题是这是我们的队友之一/home/dir这是基于NFS的。通常,我们从执行 terminal.it 运行path/xyz.sh。我试图将其制作为 url,当用户调用它时应该运行脚本并弹出选择菜单。

示例:http://abc.com/xyz应该在用户远程计算机上执行xyz.sh。 不在服务器上。

我不介意它是在Python中还是在CGI/PHP中。


更新:感谢您分享链接。我已经尝试并在火狐中创建了协议处理程序。如下所述。

首先打开about:config然后我创建了一个外部协议。 network.protocol-handler.external.app.xyz.sh,在字符串中,我提供了脚本的路径/home/xyz/xyz.sh

但是,当我从浏览器xyz调用它时:它再次给我错误,因为"Firefox确实知道如何打开这个地址。因为协议与任何程序无关"。

请帮我解决这个问题。提前谢谢。

不可能

在访问者计算机上运行任意脚本(出于显而易见的原因(。

最好的方法可能是告诉用户安装一些软件,该软件在浏览器中注册自定义协议,以便您可以将用户定向到类似

pythonexec://abc.com/xyz

如何做到这一点在其他SO帖子中进行了解释,例如:

  • 如何创建自己的 URL 协议?(例如 so://...
  • Linux 中的自定义协议?(适用于 Linux(