HTML 中的链接无法执行 .sh 文件

HTML 中的链接无法执行 .sh 文件

我有一个index.html带有链接,必须从中删除所有 *.zip /mnt/sda1/down

当我点击链接时,它开始下载而不是执行 sh 脚本。

以下是index.html和 sh 脚本:

#!/bin/sh
cd /mnt/sda1/down
rm *.zip 

...

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Untitled Document</title>
</head>

<body>
<form id="form1" name="form1" method="post" action="">
  <label><a href="delete.sh">DELETE ALL</a>  </label>
</form>
</body>
</html>

答案1

您的链接是指向一个文件的链接,您的浏览器无法识别,因此它假定它是一个下载文件。

将该链接放入 中<form>不会改变任何内容。<form>元素的目的是在调用“action”属性中指定的 URL(通常使用<input type="submit">表单中的元素)之前收集参数。

甚至不清楚是否涉及服务器。如果有,它是什么类型的?

答案2

HTML 没有这种能力。你需要使用 PHP,因为它是一种后端语言,可以与你的操作系统交互。

您可以做的是创建一个指向 php 文件的链接,当单击该链接时,它将导航到 PHP 文件,执行脚本,然后您可以告诉它将您重定向回主页或类似内容:

索引.php

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Untitled Document</title>
</head>

<body>
<a href="delete.php">DELETE ALL</a>
</body>
</html>

删除.php

<?php
echo shell_exec('sh /path/to/delete.sh');
header('Location: /'); #this will take you back to the home page
?>

原始帖子:https://stackoverflow.com/questions/7397672/how-to-run-a-sh-file-from-php

相关内容